Visual Studio msbuild - PullRequest
       6

Visual Studio msbuild

0 голосов
/ 27 февраля 2009

У меня есть вопрос, касающийся параметров командной строки msbuild. я в настоящее время используется msbuild для создания проектов с использованием существующего решения файлы. Эти файлы решения имеют ссылки на внешние библиотеки DLL, которые имеют разные пути на каждой машине. Я сейчас пишу скрипт сборки и передача определенного пути к файлу проекта через ключ / p: MSBuild.

Моя текущая строка сборки: msbuild test.sln / p: ReferencePath = "c: \ abc" / p: ReferencePath = "c: \ rca"

То, что я заметил, что Reference Path теперь содержит только c: \ rca и не c: \ abc. это вызывает проблемы для меня, так как, внешние библиотеки лежат в двух разных каталогах. Мне разрешено хранить несколько ссылки на пути через визуальную студию, но не через командную строку.

Есть ли какой-нибудь известный способ, которым я могу сделать это

Ответы [ 5 ]

4 голосов
/ 27 февраля 2009

Полагаю, вы можете использовать это / p: ReferencePath = "c: \ abc; c: \ rca"

По крайней мере, это то, на что намекает ссылка , они используют% 3B для кодирования ";" в файле сборки.

3 голосов
/ 09 марта 2009

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

  1. Релятивные пути одинаковы для всех компьютеров
  2. Исходный код всегда находится в стоке с правильной версией вашей сторонней сборки (если вам, например, необходимо собрать старую версию вашего программного обеспечения через 2 года).
  3. Обновление вашей сторонней сборки так же просто, как обновление на одной машине, а затем внесение изменений в хранилище. (В предыдущем проекте мы даже прошли проверку всей среды выполнения Java и были вполне довольны данной настройкой.)
0 голосов
/ 19 апреля 2010

Параметры командной строки для задания ссылочного пути будут работать нормально (при условии, что вы не используете точку с запятой, кажется, что% 3B и &#59; будут работать). Однако, когда аргумент был передан из nant (а мне потребовалось несколько путей), создание «файла пользовательских параметров проекта Visual Studio», казалось, работало лучше.

Я просто посылаю (эхо) файл в файловую систему в следующем формате:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
    <ReferencePath>
        C:\abc;c:\rca
    </ReferencePath>
</PropertyGroup>

Я присваиваю файлу * .user подходящее имя (учитывая файл проекта MyProject.csproj, мой файл пользователя будет MyProject.csproj.user)

0 голосов
/ 27 февраля 2009

Вам может быть лучше, если вы синхронизируете свои библиотеки между компьютерами. Я обнаружил, что Visual Studio делает это легко. Просто добавьте папку с решениями и добавьте туда свои библиотеки. Затем, в каждом проекте, ссылки на библиотеки из этого общего места. Таким образом, каждый разработчик размещает их в одном месте.

Это удалит одну из переменных, которые есть у вас при попытке сценария сборки.

0 голосов
/ 27 февраля 2009

Попробуйте разделить ваши пути точкой с запятой (;)

Как это:

C: \ а; C: \ гс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...