Поделиться через


Волны перемен

волна изменений — это набор изменений в поведении MSBuild, от которых можно отказаться, указав определённый флаг в качестве переменной среды. Цель этого заключается в том, чтобы предупредить вас о потенциально разрушительных изменениях, чтобы вы имели гибкость в адаптации к этим изменениям, прежде чем они становятся стандартными функциями. Все функции в определенной волне изменений могут быть включены или отключены только отдельно.

При обновлении до новой версии MSBuild изменения, которые потенциально нарушаются, включены по умолчанию, но если функция негативно влияет на сборку, вы можете легко отключить эту волну изменений. Каждая волна изменений определяется номером версии MSBuild (например, 16.8), но настройка волны изменений определяет только определенные функции, которые могут повлиять на процесс сборки, а не все изменения в этой версии MSBuild. Список функций каждой волны изменений отображается далее в этой статье. Отключение волны изменений также отключает волны изменений более высоких версий.

Отказ от функций волны изменений

Чтобы отключить функции в волне изменений, задайте переменную среды MSBuildDisableFeaturesFromVersion на волну изменений (или версию MSBuild), которая содержит функцию, которую требуется отключены. Это версия MSBuild, для которую были разработаны функции. См. сопоставление волн изменений с функциями ниже.

Значения MSBuildDisableFeaturesFromVersion

Вы получите предупреждение и/или по умолчанию будете перенаправлены на определенную волну, если не зададите MSBuildDisableFeaturesFromVersion как допустимую волну изменений. В следующей таблице показаны возможные параметры:

значение MSBuildDisableFeaturesFromVersion Результат Получение предупреждения?
Сбросить Включите все волны изменений, что означает, что все функции, стоящие за каждой волной изменений, включены. Нет
Любая допустимая и текущая волна изменений (например, 16.8) Отключите все функции, стоящие за волной изменений, 16.8и более поздних. Нет
Недопустимое значение (например, 16.9, если допустимые волны 16.8 и 16.10) По умолчанию выбирается ближайшее допустимое значение по возрастанию. Например, установка 16.9 по умолчанию приведет к значению 16.10. Нет
Вне ротации (например, 17.1, когда самая высокая волна 17.0) Устанавливает ближайшее допустимое значение. Например, 17.1 зажимается к 17.0, а 16.5 зажимается к 16.8 Да
Недопустимый формат (например, 16x8, 17_0, garbage) Включите все волны изменений, что означает, что все функции, стоящие за каждой волной изменений, включены. Да

Изменение волн и связанных особенностей

17.10

17.8

17.6

17.4

17.0

Изменение волн больше не вращалось

16.8

16.10

Вопросы и ответы

Почему каждый другой выпуск предназначен для поворота волн изменения?

Мы считаем, что это достаточно времени, чтобы обсудить с пострадавшими и помочь адаптироваться к изменениям.

Почему переменная среды, а не свойство проекта?

Существуют сценарии, в которых мы хотим разместить функцию под волной изменений, прежде чем MSBuild загрузила проект. По этой причине смена волн требует использования переменных среды.

Почему выбрать отказ от участия, а не согласие?

Отказ от участия является более подходящим для нас подходом, иначе мы, вероятно, получим ограниченные отзывы, когда функция влияет на конфигурации клиентов.