Visual Studio автоматически восстанавливает пакеты dll

В компании, в которой я работаю, внутри каждого решения у нас есть одна папка пакетов, которая содержит все зависимости dll. Эта папка не находится в хранилище с остальной частью решения.

Каждый раз, когда я строю один проект, все файлы внутри пакетов папок восстанавливаются и все отсутствующие библиотеки появляются снова. Это происходит в начале сборки, независимо от того, удалась ли сборка. Даже если у проекта нет зависимостей dll, все отсутствующие dll в пакетах будут восстановлены.

Я подозреваю, что это настройка в msbuild, но я не могу ее найти. Кто-нибудь знает, где это может быть или есть место с файлами msbuild *.targets?

спасибо за любую помощь

2 ответа

Это связано с тем, что Visual Studio восстанавливает пакеты, определенные в packages.config файлы.

Вы можете контролировать это поведение в Visual Studio в параметрах: Варианты VS NuGet

Из документов MS по поводу Nuget:

MSBuild: используйте команду msbuild -t:restore, которая восстанавливает пакеты, перечисленные в файле проекта (только PackageReference). Доступно только в NuGet 4.x+ и MSBuild 15.1+, которые включены в Visual Studio 2017. Восстановление nuget и восстановление dotnet используют эту команду для соответствующих проектов.

Далее, есть довольно много о включении / отключении и изменении этого поведения различными способами.

Разрешить NuGet загружать отсутствующие пакеты: контролирует все формы восстановления пакетов, изменяя параметр packageRestore/enabled в файле NuGet.Config, как показано ниже (%AppData%\NuGet\NuGet.Config для Windows, ~/.nuget/NuGet/NuGet.Config на Mac/Linux). В Visual Studio этот параметр позволяет команде Restore NuGet Packages в контекстном меню решения работать.

Похоже, больше к вашей проблеме:

Автоматически проверять отсутствующие пакеты во время сборки в Visual Studio: управляет автоматическим восстановлением, изменяя параметр packageRestore/automatic в файле NuGet.Config, как показано ниже (%AppData%\NuGet\NuGet.Config в Windows, ~/.nuget/NuGet/NuGet.Config для Mac/Linux). Когда этот параметр установлен, запуск сборки из Visual Studio автоматически восстанавливает все отсутствующие пакеты. Эта опция не влияет на сборки, запускаемые из командной строки с использованием MSBuild.

Другие вопросы по тегам