2009-09-09 69 views
3

我刚装了微软机器人工作室2008 R2,我必须承认,我很震惊地发现路径是如何处理的。微软机器人工作室和绝对路径的问题

工作室首先要自己安装到我的个人资料(这是Vista系统):

C:\Users\MyUserName\Microsoft Robotics Dev Studio 2008 R2 

我想这是因为在开发过程中我有写文件到机器人工作室文件夹制作C:\Program Files一不行。

后来,当我创建一个新的机器人项目很多指着机器人工作室的绝对路径添加到项目中。如果我将我的项目检查到源代码管理中,而另一个开发人员将其检查到他的机器上,则绝对路径将无法解析并且项目不会编译。

此外,由于所有的服务都收集到的机器人工作室的文件夹在一台计算机上开发多个独立服务的单一文件夹似乎至少混乱。

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

+2

我觉得很奇怪,有些人认为这属于SuperUsers.com。这个问题是关于特定开发环境(实际上是Visual Studio 2008)的开发人员问题,以及由Microsoft工具创建的项目导致的环境中的问题。 – 2009-09-09 13:23:28

+0

+1。不能同意更多。如果我的开发IDE有任何问题,我会问这个问题,而不是SU。 – 2009-09-09 13:33:10

回答

1

我现在已经想出一个办法来改变微软机器人DSS服务Visual Studio项目到的东西您可以独立于机器人工作室的安装路径编译并运行您自己的源代码树。下面是你需要做的修改项目的情况:

  1. 添加机器人工作室bin路径到你PATH环境变量,能够在不提供完整路径执行dssproxy.exe。我已经将机器人工作室安装到程序文件文件夹中,以避免意外地将文件写入机器人工作室文件夹。

  2. 打开属性页的项目,并选择构建标签。在输出部分更改输出路径Debug\bin。对于.NET项目,通常编译到文件夹bin\Debugbin\Release,但机器人托管服务预计需要位于名为bin的文件夹中,并将数据存储在bin文件夹上方的文件夹中。

  3. 转到签名选项卡,然后在一个新的关键选择强名称密钥文件框。您可以在此时生成您自己的密钥,也可以使用sn.exe实用程序生成新密钥。或者,如果您有自己的创建密钥的政策,请遵循该政策。 sn.exe实用程序可以在机器人工作室的tools文件夹中找到。

  4. 生成事件选项卡编辑生成后事件命令行

    dssproxy.exe /dll:"$(TargetPath)" /proxyprojectpath:"$(ProjectDir)Proxy" /keyfile:"$(SolutionDir)Key.snk" $(ProxyDelaySign) $(CompactFrameworkProxyGen) /binpath:"." @(ReferencePath->'/referencepath:"%(RootDir)%(Directory) "', ' ')

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

  5. 复制文件从机器人工作室bin文件夹到项目文件夹DssHost.exeDssHost.exe.config(或DssHost32.exeDssHost32.exe.config为32位托管服务),并将这些文件添加到项目中。将构建动作设置为内容复制到输出目录复制如果更新。对于您的服务,请为清单文件做同样的事情。实际上,清单文件不必与服务位于同一个文件夹中,但将其复制到输出文件夹可以执行XCOPY部署。

  6. 调试选项卡中的启动外部程序更改为DssHost.exe在项目的输出文件夹。您将不得不构建一次该项目以将该文件复制到输出文件夹。清除工作目录。设置的命令行参数

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

    更改清单文件名设置为项目的正式名称。您可以修改此处或在DssHost.exe.config文件中使用的端口号。如果您运行在受保护的Windows环境(UAC)中,则必须使用命令httpreserve来让您访问特定的端口。您必须以管理员身份运行此命令。

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

你也应该相应地更新发布配置。

0

因为我只是在MS机器人的CCR感兴趣,我只需要添加这些组件,以我使用它,只是用它做任何项目的引用。

这工作没有任何问题。所以,如果你也只能在工作室的CCR和DSS部分感兴趣那么这可能是您的解决方案

Reinier

0

我们看到这个问题很多。绝对最简单的解决方案是在安装robotics studio时指定安装目录为“C:\ program files \ microsoft robotics studio”。通过这种方式在机器之间移动代码,检查源代码控制等问题变得不那么麻烦。

另一种选择是使用RDS附带的dssprojectmigration。只需针对您的项目目录运行dssprojectmigration,它将更正所有硬编码路径。