Проблема с PackageRestore, Silverlight и MSBuild - PullRequest
2 голосов
/ 08 декабря 2011

Мы используем NugetPowerTools PackageRestore , чтобы не помещать папку наших пакетов в svn.Это работает при создании проектов .NET с Visual Studio и MSBuild.Он также работает при создании проектов Silverlight с помощью Visual Studio.

Однако, когда мы используем MSBuild для создания проектов Silverlight, сборка завершается неудачно.Похоже, это связано с задачами в Microsoft.Silverlight.Common.targets.Глядя на вывод MSBuild, кажется, что он переходит к шагу GetXapOutputFile до того, как произойдет ошибка.Что-то либо на этом этапе, либо после этого, ищет пакеты, но восстановление пакета не выполняется до тех пор, пока все это не будет выполнено.Сборка во второй раз будет успешной.

Чем отличается сборка в Visual Studio от запуска MSBuild?Есть ли параметр командной строки, который мне не хватает?

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

Я бегу MSBuild Solution.sln /target:Clean;Rebuild

Редактировать

Я обновил NuGet до v1.6, удалил все следыNuGetPowerTools, и теперь я использую встроенную опцию восстановления пакета.Я все еще получаю эту ошибку.

Редактировать снова

Дискуссия по этому вопросу возобновилась.Я проверил это сейчас с NuGet v2.0, и это все еще происходит.

1 Ответ

1 голос
/ 12 октября 2012

Это исправлено в NuGet v2.1.31002.9028. Подробности можно найти в этом коммите .

Для существующих решений вам необходимо удалить ./nuget/NuGet.targets из вашего решения. Сделайте это через Windows Explorer. Удаление его с помощью Visual Studio приведет к удалению только файла из вашего решения, и оно оставит файл в покое.

Как только вы это сделаете, щелкните правой кнопкой мыши на вашем решении и выберите «Включить восстановление пакета». Это восстановит NuGet.targets с исправлением.

...