Microsoft Robotics Studio и проблемы с абсолютным путем
-
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 в нечто, что вы можете скомпилировать и запустить собственное дерево источника, независимо от пути установки студии робототехники. Вот описание того, что вам нужно сделать, чтобы изменить проект:
Добавьте к вам путь Bin Studio Studio Path ДОРОЖКА переменная среды, чтобы иметь возможность выполнять
dssproxy.exe
не поставляя полный путь. Я установил Robotics Studio в папку Program Files, чтобы избежать случайного написания файлов в папки Studio Robotics.Открой Характеристики страница для проекта и выберите Строить вкладка в Выход раздел изменить Выходной путь к
Debug\bin
. Анкет Для .NET Projects Обычно собирать в папки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 -битной службы хостинга) из папки Bin Studio в папке Robotics в папку проекта и добавьте эти файлы в проект. Установить Построить действие к Содержание а также Скопировать в каталог выходного вывода к Скопируйте, если новее. Анкет Сделать то же самое для Манифестный файл за ваш сервис. На самом деле, манифестный файл не должен находиться в той же папке, что и служба, но копирование его в выходной папке позволяет вам развернуть XCopy.в Отлаживать вкладка изменить Начните внешнюю программу в
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 против вашего каталога проекта, и это исправят все жесткие пути.