Попытка использовать MSBuild из командной строки для решения WP7 - PullRequest
2 голосов
/ 15 августа 2011

Я пытаюсь создать файл решения WP7 из командной строки, используя MSBuild (файл решения прекрасно собирается внутри VS).На данный момент у меня есть следующее:

msbuild Test.WP7.sln /t:rebuild /p:OutputPath="bin\Release" /p:Platform="Any CPU" /p:Configuration="Release"

Проблема, с которой я столкнулся, - это предварительная сборка для установки любых необходимых пакетов NuGet. Инструмент имеет ссылку в относительном каталоге, отличном от файла решения:

..\Tools\NuGet\nuget install $(ProjectDir)packages.config -o $(SolutionDir)Packages

Теперь при запуске из командной строки MSBuild не может найти этот каталог и возвращает ошибку MSB3073, например:

"C: \ Work \ test \ trunk \ test \ test.WP7.sln "(перестроить цель) (1) ->" C: \ Work \ test \ trunk \ test \ test.Core.View.ViewModel \ test.Core.View.ViewModel.csproj "(перестроить цель) (4) -> c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets (902,9): ошибка MSB3073: команда ".. \ Tools \ NuGet \ nuget установить C: \ Work \ test \ trunk\ test \ test.Core.View.ViewModel \ packages.config -o C: \ Work \ test \ trunk \ test \ Packages "завершен с кодом 3. [C: \ Work \ test \ trunk \ test \ test.Core.View.ViewModel \ test.Core.View.ViewModel.csproj]

Есть идеи, как обойти это без изменения файлов проекта или решения?

1 Ответ

4 голосов
/ 15 августа 2011

Не используйте относительный путь для NuGet.Вместо этого используйте переменную $(SolutionDir), например:

<Target Name="BeforeBuild">
    <Exec Condition="Exists('$(ProjectDir)packages.config')" 
          Command="&quot;$(SolutionDir)Tools\nuget.exe&quot; install &quot;$(ProjectDir)packages.config&quot; -o &quot;$(SolutionDir)Packages&quot;" />
</Target>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...