首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microsoft Robotics Studio和绝对路径问题

Microsoft Robotics Studio和绝对路径问题
EN

Stack Overflow用户
提问于 2009-09-09 13:06:37
回答 3查看 966关注 0票数 3

我刚刚安装了Microsoft Robotics Studio2008 R2,我必须承认,我很震惊地发现路径是如何被处理的。

首先,工作室希望将自己安装到我的个人资料中(这是在Vista上):

代码语言:javascript
复制
C:\Users\MyUserName\Microsoft Robotics Dev Studio 2008 R2

我猜想这是因为在开发过程中,我必须将文件写入robotics studio文件夹,这使得C:\Program Files无法运行。

然后,当我创建一个新的机器人项目时,很多指向机器人工作室的绝对路径被添加到项目中。如果我将项目签入到源代码管理中,而另一名开发人员将其签出到他的机器上,则绝对路径将无法解析,项目也将无法编译。

此外,由于所有服务都被收集到robotics studio文件夹中的单个文件夹中,因此在一台计算机上开发多个独立的服务看起来至少是令人困惑的。

你有什么好的策略来处理这个烂摊子吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-09 19:45:43

我现在已经想出了一种方法,可以将Microsoft Robotics DSS Service visual studio项目更改为您可以在自己的源码树中编译和运行的东西,独立于robotics studio的安装路径。以下是修改项目所需操作的说明:

  1. 将robotics studio bin path添加到 path 环境变量,以便能够在不提供完整路径的情况下执行dssproxy.exe。我已将robotics studio安装到程序文件文件夹中,以避免意外将文件写入robotics studio文件夹。
  2. 打开项目的属性页,然后选择Build选项卡。在Output部分中,将Output path更改为Debug\bin.对于.NET项目,习惯上是编译到文件夹bin\Debugbin\Release中,但机器人托管服务希望位于名为bin的文件夹中,并将数据存储在bin文件夹上方的文件夹中。
  3. 转到Signing选项卡,并在Choose a strong name key <>E227框中选择一个新密钥。您可以在此时生成自己的密钥,也可以使用sn.exe实用程序生成新密钥。或者,如果您有自己的创建密钥的策略,请遵循该策略。sn.exe实用程序可以在robotics studio的tools文件夹中找到。
  4. 在Build Events选项卡中编辑生成后事件命令行dssproxy.exe /dll:"$(TargetPath)" /proxyprojectpath:"$(ProjectDir)Proxy" /keyfile:"$(SolutionDir)Key.snk" $(ProxyDelaySign) $(CompactFrameworkProxyGen) /binpath:"." @(ReferencePath->'/referencepath:"%(RootDir)%(Directory) "', ' ')

请注意/keyfile.的参数输入用于查找上一步中创建的强名称密钥文件的表达式。robotics

  • 将文件DssHost.exeDssHost.exe.config (对于32位托管服务,则为DssHost32.exeDssHost32.exe.config )从robotics studio bin文件夹复制到项目文件夹中,并将这些文件添加到项目中。将目录构建操作设置为Content,将Copy设置为Output to Copy if newer。对您的服务的清单文件执行相同的操作。实际上,清单文件不必与服务位于相同的文件夹中,但是将其复制到输出文件夹使您能够执行XCOPY deployment.

  • In,将项目输出文件夹中的DssHost.exe 选项卡中的Start external 更改为XCOPY。您必须生成项目一次,才能将文件复制到输出文件夹。清除工作目录。将命令行参数设置为

/p:50000 /t:50001 /m:DSSService1.manifest.xml

在项目中将清单文件名更改为正确的名称。您可以在此处或DssHost.exe.config文件中修改使用的端口号。如果您在受保护的Windows环境中运行,则必须使用httpreserve命令来授予自己对特定端口的访问权限。您必须以管理员身份运行此命令。

调试设置不会存储在项目文件中,每个开发人员都必须创建个人设置。

您还应相应地更新Release配置。

票数 1
EN

Stack Overflow用户

发布于 2009-09-09 13:29:32

因为我只对MS Robotics的CCR感兴趣,所以我只是添加这些程序集作为对我使用它的任何项目的引用。

这项工作没有任何问题。因此,如果您也只对演播室的CCR和DSS部分感兴趣,那么这可能是您的解决方案

Reinier

票数 0
EN

Stack Overflow用户

发布于 2009-10-08 19:10:24

我们经常看到这个问题。绝对最简单的解决方案是在安装robotics studio时将安装目录指定为"C:\program files\microsoft robotics studio“。这样一来,在机器之间移动代码,签出源代码控制等问题就少了很多。

另一个选项是使用dssprojectmigration,它包含在RDS中。只需对您的项目目录运行dssprojectmigration,它将更正所有硬编码的路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1399584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档