Nuget: Какова цель тега requireReinstallation в packages.config

Я обновил свой проект С# (который уже имел некоторые пакеты nuget) с 4.0 до 4.5.2. Я видел, что некоторые пакеты теперь содержат дополнительный тег requireReinstallation.

а) Какова цель этого?

б) Почему некоторые пакеты есть, а другие нет.

До

<package id="NLog" version="3.1.0.0" targetFramework="net40" />

После

<package id="NLog" version="3.1.0.0" targetFramework="net40" requireReinstallation="true" />

Ответ 1

Из примечаний к выпуску

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

По сути, NuGeT автоматически помещает пакеты, которые конфликтуют с вашим проектом или версией