Microsoft Robotics Studio и проблемы с абсолютным путем

StackOverflow https://stackoverflow.com/questions/1399584

  •  22-09-2019
  •  | 
  •  

Вопрос

Я только что установил Microsoft Robotics Studio 2008 R2, и я должен признать, что я шокирован, узнав, как обрабатываются пути.

Сначала студия хочет включить себя в мой личный профиль (это на Vista):

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

Я предполагаю, что это потому, что во время разработки я должен писать файлы в папку Robotics Studio C:\Program Files a no go.

Затем, когда я создаю новый проект робототехники, в проект добавляется множество абсолютных путей, указывающих на студию робототехники. Если я проверю свой проект на управление источником, а другой разработчик проверит его на своей машине, абсолютные пути не будут разрешены, и проект не будет компилироваться.

Кроме того, поскольку все услуги собираются в одну папку в папке Robotics Studio, разработав несколько независимых сервисов на одном компьютере, по крайней мере, запутывает.

У вас есть хорошие стратегии для обработки этого беспорядка?

Это было полезно?

Решение

Теперь я выяснил способ превратить проект Microsoft Robotics DSS Service Visual Studio в нечто, что вы можете скомпилировать и запустить собственное дерево источника, независимо от пути установки студии робототехники. Вот описание того, что вам нужно сделать, чтобы изменить проект:

  1. Добавьте к вам путь Bin Studio Studio Path ДОРОЖКА переменная среды, чтобы иметь возможность выполнять dssproxy.exe не поставляя полный путь. Я установил Robotics Studio в папку Program Files, чтобы избежать случайного написания файлов в папки Studio Robotics.

  2. Открой Характеристики страница для проекта и выберите Строить вкладка в Выход раздел изменить Выходной путь к Debug\bin. Анкет Для .NET Projects Обычно собирать в папки bin\Debug а также bin\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. Скопируйте файлы DssHost.exe а также DssHost.exe.config (или же DssHost32.exe а также DssHost32.exe.config Для 32 -битной службы хостинга) из папки Bin Studio в папке Robotics в папку проекта и добавьте эти файлы в проект. Установить Построить действие к Содержание а также Скопировать в каталог выходного вывода к Скопируйте, если новее. Анкет Сделать то же самое для Манифестный файл за ваш сервис. На самом деле, манифестный файл не должен находиться в той же папке, что и служба, но копирование его в выходной папке позволяет вам развернуть XCopy.

  6. в Отлаживать вкладка изменить Начните внешнюю программу в DssHost.exe в выходной папке вашего проекта. Вам нужно будет создать проект один раз, чтобы скопировать файл в выходной папке. Очистить Рабочий каталог. Анкет Установить Аргументы командной строки к

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

    Измените имя манифеста на правильное имя в вашем проекте. Вы можете изменить номера портов, используемые здесь или в DssHost.exe.config файл. Если вы работаете в защищенной среде Windows (UAC), вам придется использовать httpreserve командование, чтобы дать себе доступ к конкретному порту. Вы должны запустить эту команду в качестве администратора.

    Настройки отладки не хранятся в файле проекта, и каждый разработчик должен будет создавать личные настройки.

Вы также должны обновить Выпускать конфигурация соответственно.

Другие советы

Поскольку меня интересовали только CCR MS Robotics, я просто добавляю эти собрания в качестве ссылки на любой проект, с которым я использую его, и просто покончено с ним.

Это работает без каких -либо проблем. Так что, если вы также заинтересованы только в CCR и DSS -частью студии, то это может быть ваше решение

Рейнир

Мы часто видим эту проблему. Самое простое решение - указать каталог установки при установке Robotics Studio «C: Program Files Microsoft Robotics Studio». Таким образом, перемещение кода между машинами, проверка управления источником и т. Д. становится намного менее проблематичным.

Другой вариант - использовать dssprojectmigration, которая включена в RDS. Просто запустите DSSProjectMigration против вашего каталога проекта, и это исправят все жесткие пути.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top