2009-03-11 2 views
19

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

В основном у меня есть следующие две строки (между прочим) один за другим в событии предварительной сборки.

"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "$(SolutionDir)Folder1\Project1.csproj" 

"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "$(SolutionDir)Folder2\Folder3\Project2.csproj" 

Первый преуспевает, другой терпит неудачу говоря, что "Команда "" C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ MSBuild.exe"/р: Конфигурация = Release, платформа = x86/т: восстановление "* Не определено * Folder2 \ folder3 \ Project2.csproj"»завершался с кодом 1.

(Space вставленный между astrisk причиной столь форматирования)

Edit: Разобрался проблема заключалась в том, что один из других проектов с той же строкой, что и prebuild, был неудачным, поскольку сам MSBuild не знает о макросах.

+0

автор FYI: ссылка не работает (VS обратная связь). – yzorg

ответ

0

Вы не указываете, если это происходит для многих проектов или только одного или двух.

Если это только в одном или двух проектах, временный обходной путь может быть, чтобы заменить $ (SolutionDir) с явным пути, который Folder2 находится в Например, что-то вроде:.

"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "C:\AllSolutions\ExampleSolutions\Folder2\Folder3\Project2.csproj" 

, но с правильный путь для вашего проекта.

39

Я исправил это, заменив все $(SolutionDir) на $(ProjectDir)..\..

Это связано с тем, что MSBuild управляет каждым проектом независимо и не является решением. Он отлично работал в VS2010, но не на сервере сборки.

+6

Я не могу поверить, что это все еще проблема в 2015 году – drzaus

+0

достаточно смешно, я [понял это тоже] (http://stackoverflow.com/a/20846447/1037948) примерно на 2 недели позже вас, но недавно забыл я знал ответ и оказался здесь – drzaus

+0

Это потому, что это не проблема, вы строите csproj, а не решение –

 Смежные вопросы

  • Нет связанных вопросов^_^