Запретить пакет восстановления NuGet только в отладочных сборках - PullRequest
7 голосов
/ 14 февраля 2012

Я включил опцию Восстановить пакет в своем решении, чтобы при загрузке кода на CI-сервер он обновлял все пакеты, необходимые для правильной сборки, и он прекрасно работал.Теперь проблема в том, что на моем локальном компьютере сборка занимает много времени, потому что это «обновление пакетов».Есть ли способ включить пакет восстановления только в сборке выпуска?

Я пытался переместить свойство <RestorePackage> в файлах .csproj в разделы выпуска / отладки с помощью false и true, но NuGet обновляет атрибут при открытии консоли NuGet и сбрасывает оба значения до true;также пытался включить это свойство только в раздел релиза, но затем NuGet добавил его в глобальный раздел ... так что мне не повезло, чтобы оно оставалось таким, как я хочу ...

Любой совет?

1 Ответ

15 голосов
/ 10 марта 2012

Возможно, вам уже удалось ответить на этот вопрос, но если нет, то вам нужно выполнить эти шаги

Там, где ваш файл решения находится в Windows, должна быть папка с именем .nuget.Переименуйте или удалите эту папку.

Теперь откройте каждый файл .csproj или .vbproj в блокноте или любом текстовом редакторе и удалите эти строки

<RestorePackages>true</RestorePackages>
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" />

Важной частью является удаление / переименование.папка nuget.Теперь это должно полностью отключить восстановление пакета.

Редактировать: Чтобы выборочно отключить восстановление пакета для сборок DEBUG, отредактируйте файл Nuget.settings.targets и измените следующую строку

<RestorePackages Condition="$(RestorePackages) == ''">false</RestorePackages>

К

<RestorePackages Condition="$(RestorePackages) == '' AND '$(Configuration)' == 'Debug'">false</RestorePackages>

Файл Nuget.settings.targets находится в папке .nuget, которая должна находиться в той же папке, что и файл решения.

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