Visual Studio автоматически восстанавливает пакеты dll
В компании, в которой я работаю, внутри каждого решения у нас есть одна папка пакетов, которая содержит все зависимости dll. Эта папка не находится в хранилище с остальной частью решения.
Каждый раз, когда я строю один проект, все файлы внутри пакетов папок восстанавливаются и все отсутствующие библиотеки появляются снова. Это происходит в начале сборки, независимо от того, удалась ли сборка. Даже если у проекта нет зависимостей dll, все отсутствующие dll в пакетах будут восстановлены.
Я подозреваю, что это настройка в msbuild, но я не могу ее найти. Кто-нибудь знает, где это может быть или есть место с файлами msbuild *.targets?
спасибо за любую помощь
2 ответа
Из документов 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.