Microsoft Robotics Studio和绝对路径问题
-
22-09-2019 - |
题
我刚刚安装了Microsoft Robotics Studio 2008 R2,我必须承认,我很震惊地发现如何处理路径。
首先,工作室希望将自己安装到我的个人资料中(这是在Vista上):
C:\Users\MyUserName\Microsoft Robotics Dev Studio 2008 R2
我认为这是因为在开发过程中,我必须将文件写给机器人工作室文件夹制作 C:\Program Files
不去。
然后,当我创建一个新的机器人项目时,该项目添加了许多指向机器人工作室的绝对路径。如果我将项目检查到源控制中,而另一个开发人员将其检查到他的机器上,则绝对路径将无法解决,并且该项目将无法编译。
同样,由于所有服务都收集到机器人工作室文件夹中的单个文件夹中,开发单个计算机上的多个独立服务似乎至少令人困惑。
您是否有处理此混乱的好策略?
解决方案
现在,我已经找到了一种将Microsoft Robotics DSS服务Visual Studio项目更改为可以编译并在自己的源树中运行的方法,而与Robotics Studio的安装路径无关。以下是您需要做什么来修改项目的描述:
向您添加机器人工作室垃圾箱路径 小路 环境变量能够执行
dssproxy.exe
不提供完整的道路。我已经将机器人工作室安装到程序文件文件夹中,以避免意外地将文件写入机器人工作室文件夹。打开 特性 项目的页面,然后选择 建造 标签。在里面 输出 部分更改 输出路径 至
Debug\bin
. 。对于.NET项目,习惯将编译到文件夹中是bin\Debug
和bin\Release
但是机器人托管服务 期望 居住在名为的文件夹中bin
并将数据存储在上方的文件夹中bin
文件夹。去 签名 选项卡并选择一个新键 选择一个强名称密钥文件 盒子。您可以在此时生成自己的密钥,也可以使用
sn.exe
生成新密钥的实用程序。或者,如果您有自己的创建钥匙的政策,则遵循这一点。这sn.exe
可以在tools
机器人工作室的文件夹。在里面 建立事件 选项卡编辑 后构建事件命令行:
dssproxy.exe /dll:"$(TargetPath)" /proxyprojectpath:"$(ProjectDir)Proxy" /keyfile:"$(SolutionDir)Key.snk" $(ProxyDelaySign) $(CompactFrameworkProxyGen) /binpath:"." @(ReferencePath->'/referencepath:"%(RootDir)%(Directory) "', ' ')
注意论点
/keyfile
. 。输入一个表达式,该表达式位于上一步中创建的强名称密钥文件。复制文件
DssHost.exe
和DssHost.exe.config
(或者DssHost32.exe
和DssHost32.exe.config
对于32位托管服务),从机器人Studio Bin文件夹到项目文件夹,并将这些文件添加到项目中。设置 建立动作 至 内容 和 复制到输出目录 至 如果更新,请复制. 。做同样的事情 清单文件 为您的服务。实际上,清单文件不必与服务在同一文件夹中,但是将其复制到输出文件夹使您可以进行Xcopy部署。在里面 调试 标签更改 启动外部程序 到
DssHost.exe
在项目的输出文件夹中。您将必须一次构建项目才能将文件复制到输出文件夹。清除 工作目录. 。设置 命令行参数 至/p:50000 /t:50001 /m:DSSService1.manifest.xml
将清单文件名更改为项目中的专有名称。您可以修改此处或在此处使用的端口号
DssHost.exe.config
文件。如果您在受保护的Windows环境(UAC)中运行,则必须使用httpreserve
命令让自己访问特定端口。您必须作为管理员运行此命令。调试设置未存储在项目文件中,每个开发人员都必须创建个人设置。
您还应该更新 发布 相应的配置。
其他提示
由于我只对MS Robotics的CCR感兴趣,因此我只添加这些程序集作为对我使用的任何项目的参考,并可以使用它。
这无问题。因此,如果您也只对工作室的CCR和DSS部分感兴趣,那么这可能是您的解决方案
雷尼尔
我们经常看到这个问题。绝对简单的解决方案是在安装Robotics Studio为“ C: Program Files Microsoft Robotics Studio”时指定安装目录。这样,在机器之间移动代码,签出源控制等将变得越来越小。
另一个选择是使用RDS随附的DSSProject迁移。只需针对您的项目目录运行DSProject迁移,它将纠正所有硬编码路径。