NuGet: обновите пакет до определенной версии во всех проектах через PowerShell или CMD
У нас есть сценарий, в котором разные команды работают в разных частях более крупного продукта. Время от времени все проекты Visual Studio всех решений должны обновлять некоторые из упомянутых пакетов NuGet. В результате этого обновления все проекты во всем исходном дереве должны ссылаться на одни и те же версии пакетов.
Есть ли способ обновить определенный пакет NuGet до определенной версии во всех проектах с помощью автоматического подхода, например PowerShell?
Изменить:
Есть ли способ как-то загрузить необходимые части Visual Studio и NuGet, а также правильно отредактировать ссылки сборки?
Пример:
NuGetScript Update Solution.sln PackageName -version NewVersion
или
NuGetScript Update PathToProjects PackageName -version NewVersion
Слишком много компонентов для загрузки всех из них в Visual Studio и обновления их вручную через интерфейс диспетчера пакетов.
Ответы
Ответ 1
Вы можете создать PowerShell script для поиска всех файлов проекта или файлов package.config в своем решении, а затем вызвать nuget update для обновления пакетов.
Однако при обновлении пакетов вне Visual Studio существует ограничение, я бы рекомендовал вам сделать это из Visual Studio:
Команда обновления загрузит и распакует все новые пакеты в пакетов. Ссылки на сборку будут обновлены в проекте файл, однако это ограничивается только существующими ссылками. Если новый пакет имеет добавленную сборку, он не будет добавлен как часть обновить команду. Новые зависимости пакетов также не будут иметь добавлены ссылки на сборку. Чтобы выполнить полное обновление, используйте Visual Студия.
Ответ 2
Пожалуйста, используйте следующую командную строку в окне консоли диспетчера пакетов, чтобы обновить определенный пакет в одном решении.
Get-Project -All | Обновление пакета PackageName -Version newVersion