3

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

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

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

我认为这是因为在开发过程中,我必须将文件写入机器人工作室文件夹,这C:\Program Files是不行的。

然后,当我创建一个新的机器人项目时,许多指向机器人工作室的绝对路径被添加到项目中。如果我将我的项目签入源代码控制并且另一个开发人员将其签出到他的机器上,那么绝对路径将无法解析并且项目将无法编译。

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

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

4

3 回答 3

1

我现在找到了一种方法,可以将 Microsoft Robotics DSS Service Visual Studio 项目更改为您可以在自己的源代码树中编译和运行的东西,而与机器人工作室的安装路径无关。以下是修改项目所需执行的说明:

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

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

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

  4. Build Events选项卡中编辑Post-build 事件命令行

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

    注意论据/keyfile。输入一个表达式来定位在上一步中创建的强名称密钥文件。

  5. 将文件DssHost.exeDssHost.exe.config(或DssHost32.exe用于DssHost32.exe.config32 位托管服务)从机器人工作室 bin 文件夹复制到项目文件夹中,并将这些文件添加到项目中。将Build Action设置为Content并将Copy to Output Directory设置为Copy if newer。对您的服务的清单文件执行相同的操作。实际上,清单文件不必与服务位于同一文件夹中,但将其复制到输出文件夹可以让您进行 XCOPY 部署。

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

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

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

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

您还应该相应地更新发布配置。

于 2009-09-09T19:45:42.807 回答
0

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

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

赖尼尔

于 2009-09-09T13:29:32.297 回答
0

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

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

于 2009-10-08T19:10:24.487 回答