У нас есть комплексное решение Visual Studio с проектами, ссылающимися на те же пакеты NuGet разных версий.Запретить использование нескольких версий пакетов NuGet в решении
Я считаю, что это плохая практика, поскольку потенциально может привести к дллов ад
Так что - есть способ контролировать это?
В идеале это должно быть частью либо:
- решение строить
- TFS GaTeD используется регистрация
- доставки трубопровода в любой CI \ инструмент CD.
Мне очень понравилось Package Manager Console Powershell Reference. Но я не мог найти способ использовать эти командлеты (Get-Package и Get-Project -All) во внешнем скрипте Powershell вне VS.
Самое простое решение, которое я вижу, это написать собственный Powershell скрипт, который читает .sln файл, получает все проекты, и для каждого из них читает packages.config и принимает все пакеты NuGet версии оттуда.
Или ... используйте VS DTE, чтобы упростить эту работу, но до сих пор у меня не было опыта ее использования.
И тогда ... как только у нас есть этот скрипт - мы можем запустить его в CI.
Есть ли более простой и стандартный способ?
demoncodemonkey, спасибо за ответ и полезную ссылку. Хотя он не отвечает на мой первоначальный вопрос, он, безусловно, помогает понять, как работает NuGet.Мне нужно будет погрузиться в него глубже, но на данный момент я не понимаю ничего: почему я получаю несколько версий пакетов, загружаемых в каталог dir во время NuGet RestorePackages, если NuGet автоматически выбирает единственную версию, которая подходит для всех проектов ссылок. , – Ivan