Nuget - необходимость переустановки пакетов, отмеченных проблемой requireReinstallation? - PullRequest
0 голосов
/ 04 сентября 2018

После обновления решения VS до новой версии .Net NuGet иногда добавляет флаг requireReinstallation в сторонние пакеты в package.config, что приводит к появлению предупреждений о сборке.

Эта проблема была описана в этом посте: https://dhalgara.com/2018/04/19/nuget-require-reinstallation/

Интересно, можно ли пропустить переустановку пакетов, помеченных флагом requireReinstallation, в package.config, если я не получаю предупреждений при создании решения?

Спасибо!

1 Ответ

0 голосов
/ 05 сентября 2018

Интересно, можно ли пропустить переустановку пакетов, помеченных флагом requireReinstallation, в package.config, если я не получаю предупреждений при создании решения?

Не обязательно сообщать вам, безопасно ли пропустить переустановку пакетов, помеченных флагом requireReinstallation в файле packages.config, если вы не получаете предупреждений при сборке решения, но при личной рекомендации не пропускать переустановку.

Согласно примечаниям к выпуску :

Если мы обнаружим, что какой-либо из ваших пакетов был затронут ретаргетинг или обновление, мы немедленно выдадим ошибки сборки, чтобы ты знаешь. В дополнение к немедленной ошибке сборки, мы также сохраняем requireReinstallation = "true" флаг в вашем файле packages.config для всех пакеты, которые были затронуты ретаргетингом, и каждый последующий сборка в Visual Studio вызовет предупреждения о сборке для этих пакетов.

Это означает, что алгоритм аналогичен алгоритму, который используется для определения того, какая сборка лучше всего подходит для проекта, если пакет NuGet должен был быть установлен в проект, если у него была новая целевая среда. Если сборка отличается, NuGet считает, что требуется переустановка. Например, пакет nuget с:

  • Библиотека / net45

    • Classlibeary1.dll
  • Библиотека / net46

    • Classlibeary1.dll

Когда вы изменяете целевую платформу с .net 4.5 на 4.6, NuGet пометит dll под .net 46 как нуждающуюся в переустановке. Пакет содержит сборку, нацеленную на .NET 4.6, поэтому он считается более подходящим.

Если метод, на который вы ссылались из .net 46 и .net 45, совпадает, то можно пропустить переустановку пакетов, помеченных флагом requireReinstallation, но если метод отличается в .net 46 и .net 45, вам нужно переустановить этот пакет nuget.

Итак, личная рекомендация не пропускать переустановку.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...