Обновление Nuget.exe и пакет обновления в Visual Studio и Web/App.configs

При обновлении версии пакета для проекта через командную строку с использованием «nuget update (projectFile|packages.config) -Id (packageName) -NonInteractive» у меня есть куча сгенерированных web.configs (с преобразованиями) и существующее приложение. конфиги не трансформируются.

При обновлении одной и той же версии пакета для одного и того же проекта через VS (Update-Package -Id (packageName)) не создаются файлы web.config, а преобразуются соответствующие файлы app.config.

Я понимаю, что созданные файлы web.config не имеют негативных последствий, но меня беспокоит дополнительный беспорядок в файлах.

Почему поведение непоследовательно? И есть ли способ для CLI придерживаться поведения VS (которое я хочу)?

Использование последней версии nuget.exe 4.4.1


person badazzhindu    schedule 01.12.2017    source источник


Ответы (1)


Почему поведение непоследовательно?

Это связано с разным поведением команды nuget install между NuGet CLI и Visual Studio.

Как мы знаем, преобразования конфигурации предоставляют пакету простой способ изменить web.config или app.config когда пакет установлен. И когда мы обновляем пакет NuGet, NuGet удалит пакет nuget старой версии, а затем установит последний пакет nuget в проект.

Однако поведение команды nuget install между NuGet CLI и Visual Studio отличается.

Операция nuget install упаковывает в CLI NuGet:

введите здесь описание изображения

Очевидно, что NuGet не будет повторно преобразовывать app.configs при использовании операции update-packages в интерфейсе командной строки NuGet.

И наоборот, пакет операции nuget-install в Visual Studio:

Устанавливает пакет и его зависимости в проект.

Таким образом, использование пакета обновления в Visual Studio может соответствующим образом преобразовать файл app.configs.

И есть ли способ для CLI придерживаться поведения VS (которое я хочу)?

Насколько мне известно, я боюсь, что ответ не таков. Поскольку консоль диспетчера пакетов предоставляет доступ к объектам Visual Studio. Мы не могли использовать его с NuGet CLI без Visual Studio:

https://github.com/NuGet/Home/issues/1512

person Leo Liu-MSFT    schedule 04.12.2017