Ändra vågor

En ändringsvåg är en uppsättning beteendeändringar i MSBuild som du kan välja bort genom att ange en viss flagga som en miljövariabel. Syftet med detta är att varna dig för potentiellt störande ändringar så att du har flexibilitet att anpassa dig till dessa ändringar innan de blir standardfunktioner. Alla funktioner i en specifik ändringsvåg kan bara aktiveras eller inaktiveras tillsammans, inte individuellt.

När du uppgraderar till en ny version av MSBuild aktiveras ändringar som potentiellt bryter som standard, men om en funktion påverkar ditt bygge negativt kan du enkelt inaktivera den vågen av ändringar. Varje ändringsvåg identifieras av ett MSBuild-versionsnummer (till exempel 16.8), men om du ställer in ändringsvågen styrs endast vissa funktioner som kan påverka byggprocessen, inte alla ändringar i den MSBuild-versionen. En lista över funktionerna i varje ändringsvåg visas senare i den här artikeln. Om du inaktiverar en ändringsvåg inaktiveras även ändringsvågor av högre versioner.

Avregistrera dig från funktioner för ändringsvåg

Om du vill inaktivera funktionerna i en ändringsvåg anger du miljövariabeln MSBuildDisableFeaturesFromVersion till ändringsvågen (eller MSBuild-versionen) som innehåller den funktion som du vill inaktiverad. Det här är den version av MSBuild som funktionerna har utvecklats för. Se mappningen av ändringsvågor till följande funktioner.

Bestående MSBuild-processer behåller det värde för MSBuildDisableFeaturesFromVersion som de startade med. När du har ändrat miljövariabeln stänger du av beständiga byggprocesser innan du kör en annan version. För versioner som körs med .NET CLI använder du dotnet build-server shutdown. För versioner som körs med Visual Studio eller MSBuild.exestänger du Visual Studio och avslutar eventuella återstående MSBuild.exe processer. Annars kan återanvända processer fortsätta att använda det tidigare värdet och projekt som skapats parallellt kan använda olika värden.

MSBuildDisableFeaturesFromVersion -värden

Du får en varning och/eller återställs till en specifik våg om du inte anger MSBuildDisableFeaturesFromVersion till en giltig våg för ändringar. I följande tabell visas de möjliga inställningarna:

MSBuildDisableFeaturesFromVersion värde Resultat Får du en varning?
Inaktivera Aktivera alla ändringsvågor, vilket innebär att alla funktioner bakom varje ändringsvåg är aktiverade. Nej
Alla giltiga och aktuella ändringsvågor (till exempel 16.8) Inaktivera alla funktioner bakom ändringsvågen 16.8och högre. Nej
Ogiltigt värde (till exempel 16.9 när giltiga värden är 16.8 och 16.10) Standardisera till det närmaste giltiga värdet (stigande). Om du till exempel ställer in 16.9 kommer du som standard att hamna på 16.10. Nej
Utanför rotation (till exempel 17.1 när den högsta vågen är 17.0) Justera mot närmaste giltiga värde. Till exempel 17.1 fäster till 17.0och 16.5 fäster till 16.8 Ja
Ogiltigt format (till exempel 16x8, 17_0, garbage) Aktivera alla ändringsvågor, vilket innebär att alla funktioner bakom varje ändringsvåg är aktiverade. Ja

Ändra vågor och tillhörande funktioner

Nuvarande rotation för ändringsvågor

18,12

18.11

18.10

18,9

18.8

18.7

18.6

18,5

18.4

Ändringsvågorna är inte längre i rotation

16.8

16.10

17.0

17.4

17.6

17.8

17.10

17.12

17.14

18.3

FAQ

Varför rikta in sig på alla andra versioner för att rotera ut ändringsvågor?

Vi anser att detta är tillräckligt med tid för att föra diskussioner med de drabbade och bidra till att anpassa sig till förändringarna.

Varför en miljövariabel och inte en projektegenskap?

Det finns scenarier där vi vill placera en funktion under en ändringsvåg innan MSBuild har läst in projektet. Därför kräver ändringsvågor att miljövariabler används.

Varför avregistrera dig för att anmäla dig?

Valfri avregistrering är en bättre metod för oss, annars skulle vi sannolikt få begränsad feedback när en funktion påverkar kundens byggprocesser.