Отсутствует ссылка на сборку при сборке с MSBuild, но успешная сборка в VS 2008 - PullRequest
0 голосов
/ 02 марта 2011

Я пытаюсь создать сценарии сборки nAnt для нашего проекта. Когда я пытаюсь собрать его с помощью msbuild - вызываемого из nAnt как внешней задачи, я получаю массу ошибок отсутствующих ссылок. Но когда я пытаюсь собрать его из VS 2008, это нормально. Я нашел один проект, который ссылается (с помощью предложения «using» в файле * .cs на пространство имен ниже) на другой веб-проект. Дело в том, что этот WebProject называется в SLN WebClient, но по своим свойствам получает также выходную сборку с другим пространством имен, таким как Copmany.Something.dll. Я попытался добавить ссылку на него, указав его из VS, но VS не позволяет мне сделать это, потому что это будет круговая зависимость. Может быть, у кого-то была похожая проблема?

Ответы [ 2 ]

1 голос
/ 02 марта 2011

Попробуйте вызвать MSBuild.exe из Командная строка VS . Командная строка имеет ту же среду, что и VS. Чтобы заставить его работать из скрипта или CI, вы можете позвонить C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat .

EDIT: Вы можете создать свои файлы sln:

MSBuild.exe 1.sln /t:Rebuild /p:Configuration=Release;Platform="Any CPU"

Если вы можете быть уверены, что VS собирает Sln без ошибок, вы можете установить то же поведение при сборке в nant.

0 голосов
/ 17 сентября 2012

У меня была похожая проблема, но, как оказалось, она была вызвана тем, что NAnt нацелился на среду выполнения 4.0. Visual Studio была нацелена на 3.5, поэтому, я думаю, зависимости обрабатывались по-разному. Я исправил это, заставив NAnt нацелиться на среду выполнения 3.5.

<property name="nant.settings.currentframework" value="net-3.5" />
...