代码之家  ›  专栏  ›  技术社区  ›  Martin Liversage

Microsoft Robotics Studio和绝对路径问题

  •  3
  • Martin Liversage  · 技术社区  · 15 年前

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

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

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

    我想这是因为在开发过程中我必须将文件写入robotics studio文件夹 C:\Program Files 一去不去。

    然后,当我创建一个新的机器人项目时,会将指向robotics studio的许多绝对路径添加到该项目中。如果我将我的项目签入源代码管理,而另一个开发人员将其签出到他的计算机上,绝对路径将无法解析,项目将无法编译。

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

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

    3 回复  |  直到 9 年前
        1
  •  1
  •   Martin Liversage    15 年前

    我现在已经找到了一种方法来将微软机器人DSS服务VisualStudio项目转换成可以独立于机器人工作室的安装路径在自己的源树中编译和运行的项目。以下是修改项目所需操作的说明:

    1. 向您添加robotics studio bin路径 路径 要执行的环境变量 dssproxy.exe 不提供完整路径。我已将robotics studio安装到“程序文件”文件夹中,以避免意外地将文件写入robotics studio文件夹。

    2. 打开 性质 页面,然后选择 建造 标签。在 产量 节更改 输出路径 Debug\bin . 对于.NET项目,通常编译到文件夹中 bin\Debug bin\Release 但是机器人托管服务 期待 生活在名为 bin 并将数据存储在 箱子 文件夹。

    3. 签署 选项卡并在 选择强名称密钥文件 盒子。您可以在该点生成自己的密钥,或者使用 sn.exe 用于生成新密钥的实用程序。或者如果您有自己的创建密钥的策略,请遵循该策略。这个 S.EXE 实用程序可以在 tools 机器人工作室的文件夹。

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

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

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

    5. 复制文件 DssHost.exe DssHost.exe.config (或) DssHost32.exe DssHost32.exe.config 对于32位托管服务),从robotics studio bin文件夹添加到项目文件夹中,并将这些文件添加到项目中。设置 构建动作 内容 复制到输出目录 更新时复制 . 对…也一样 清单文件 为了你的服务。实际上,清单文件不必与服务在同一个文件夹中,但是将其复制到输出文件夹可以执行xcopy部署。

    6. 调试 选项卡更改 启动外部程序 EXE 在项目的输出文件夹中。要将文件复制到输出文件夹,必须生成一次项目。清除 工作目录 . 设置 命令行参数

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

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

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

    你还应该更新 释放 相应的配置。

        2
  •  0
  •   Toad    15 年前

    由于我只对MS机器人的CCR感兴趣,所以我只是将这些程序集添加到我使用的任何项目的引用中,并完成它。

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

    赖尼尔

        3
  •  0
  •   Tom Smith    15 年前

    我们经常看到这个问题。最简单的解决方案是在安装robotics studio时将安装目录指定为“C:\程序文件\Microsoft robotics studio”。这样,在机器之间移动代码、签出源代码管理等等就不那么麻烦了。

    另一个选项是使用rds附带的dsprojectmigration。只需对项目目录运行dsprojectmigration,它就会更正所有硬编码路径。

    推荐文章