Nuget: перенос нескольких крупных решений в PackageReference
Фон
Я работаю над большим проектом с несколькими большими решениями. Всего у нас более 400 C#-проектов. В прошлом мы использовали Nuget с packages.config
файл для наших зависимостей. Теперь мы хотим перенести все проекты на новый PackageReference
формат.
проблема
Я знаю, что Visual Studio предоставляет решение для миграции одного проекта из packages.config
к PackageReference
формат, но я не знаю решение, где я могу перенести несколько решений Visual Studio одновременно. Мне не нужна проверка совместимости Visual Studio, потому что все используемые пакеты совместимы с новым форматом.
Вопрос
Существует ли удобный способ переноса нескольких решений Visual Studio одновременно с packages.config
к PackageReference
формат?
1 ответ
Nuget: перенос нескольких крупных решений в PackageReference
Для обеспечения точности миграции Visual Studio и большинство расширений предоставляют возможность миграции одного проекта из packages.config
к PackageReference
формат и выполнит проверку совместимости Visual Studio.
Если вы хотите перенести несколько решений Visual Studio одновременно, AFAIK, на данный момент такого метода или расширения не существует.
В качестве обходного пути я хотел бы предоставить вам расширение:
NuGet PackageReference Updater
Который может одновременно переносить одно решение с несколькими большими проектами из packages.config в формат PackageReference. Просто щелкните правой кнопкой мыши Solution в Solution Explorer и выберите Upgrade to Package References:
Надеюсь это поможет.
Я не нашел принятый ответ очень актуальным, потому что ссылка на расширение не работает. Я видел репо, содержащее настраиваемый код для миграции, но он просто сделал замену 1-1 без устранения транзитивных зависимостей - не очень хорошо.
Итак, я написал кое-что для автоматизации процесса применения встроенного инструмента миграции ко всем проектам, отличным от Asp.Net - https://github.com/MarkKharitonov/NuGetPCToPRMigrator
Я использовал его для переноса нескольких сотен проектов на несколько решений.