A "dotnet publish" kiadási konfigurációt használ
A dotnet publish
parancs alapértelmezés szerint a konfiguráció helyett a Release
Debug
konfigurációt használja, ha a cél keretrendszer .NET 8 vagy újabb verzió.
Előző viselkedés
Korábban a konfigurációt Debug
használta, kivéve, dotnet publish
ha a konfiguráció explicit módon lett megadva, vagy PublishRelease
a beállítás értéke true
.
A PublishRelease
tulajdonság a .NET 7-ben lett hozzáadva a kompatibilitástörő változáshoz vezető útként. Korábban beállíthatja, hogy a DOTNET_CLI_ENABLE_PUBLISH_RELEASE_FOR_SOLUTIONS
környezeti változó egy Visual Studio-megoldás részét képező projektben legyen használva PublishRelease
.
Új viselkedés
Ha a .NET 8 SDK-val vagy egy újabb verzióval fejleszt, alapértelmezés szerint a konfigurációt használja azokhoz a Release
projektekheznet8.0
, dotnet publish
amelyeknek TargetFramework
a beállítása vagy egy újabb verzió. Ha ci-/CD-szkripttel, tesztekkel vagy kóddal rendelkezik, amelyekben egy kimeneti elérési útra van kódolva Debug
, ez a módosítás megszakíthatja a munkafolyamatot.
Ha a projekt több verziót céloz meg, az új viselkedés csak akkor érvényes, ha a közzétételkor (például dotnet publish -f net8.0
a használatával) a .NET 8-as vagy újabb verziójának célkeretét adja meg.
Megoldásban lévő projektek esetén:
dotnet publish
az összes projektet közzéteheti egy Visual Studio-megoldásban, ha adott egy megoldásfájlt. A .NET 8-as vagy újabb verzióját megcélzó megoldásprojektek esetébenPublishRelease
a rendszer implicit módon úgy van beállítva, hogytrue
nincs definiálva.dotnet publish
A megoldáshoz használandó megfelelő konfiguráció meghatározásához azonban a megoldás összes projektjének meg kell egyeznie a megoldás értékévelPublishRelease
. Ha a megoldás egy régebbi projektje már be vanPublishRelease
állítvafalse
, akkor a tulajdonságotfalse
kifejezetten minden új .NET 8+ projekthez is meg kell adnia.Ez a változás a regresszió teljesítményét okozhatja
dotnet publish
, különösen a sok projektet tartalmazó megoldások esetében. Ennek megoldásához egy új környezeti változótDOTNET_CLI_LAZY_PUBLISH_AND_PACK_RELEASE_FOR_SOLUTIONS
vezetünk be.A
DOTNET_CLI_ENABLE_PUBLISH_RELEASE_FOR_SOLUTIONS
környezeti változó már nem ismerhető fel.
Bevezetett verzió
.NET 8 előzetes verzió 1
A kompatibilitástörő változás típusa
Ez a módosítás hatással lehet a forráskompatibilitásra, és viselkedésbeli változás is.
A változás oka
A legtöbb esetben a közzétételkor optimalizálni szeretné a kódot, és a hibakeresési információk kizárásával kisebbre állíthatja az alkalmazást. Az ügyfelek hosszú ideje az alapértelmezett konfigurációt publish
kértékRelease
. Emellett a Visual Studio már évek óta ezt a viselkedést használja.
A DOTNET_CLI_ENABLE_PUBLISH_RELEASE_FOR_SOLUTIONS
környezeti változó el lett távolítva, mivel az engedélyezett viselkedés most már az alapértelmezett viselkedés, és a részletes vezérlőre már nincs szükség.
Javasolt művelet
Az új viselkedés teljes letiltásához beállíthatja a
DOTNET_CLI_DISABLE_PUBLISH_AND_PACK_RELEASE
környezeti változóttrue
(vagy bármely más értéket). Ez a változó minddotnet publish
adotnet pack
.A közzététel konfigurálásának explicit megadásához
Debug
használja a-c/> dotnet publish
lehetőséget.--configuration
Ha a CI/CD-folyamat a merevlemezes kimeneti elérési utak miatt megszakadt, frissítse az elérési utakat
Release
ahelyettDebug
, hogy a környezeti változó használatával tiltsa le azDOTNET_CLI_DISABLE_PUBLISH_AND_PACK_RELEASE
új viselkedést, vagy adja meg aDebug
konfiguráció használatát.Ha közzétesz egy megoldást, és az nem működik, explicit módon beállíthatja
PublishRelease
true
(vagyfalse
visszaállíthatja az előző viselkedést).<PropertyGroup> <PublishRelease>true</PublishRelease> </PropertyGroup>
Másik lehetőségként megadhatja a tulajdonságot egy Directory.Build.Props fájlban. Ha azonban ebben a fájlban állítja be
false
, akkor is explicit módon kell beállítania a tulajdonságotfalse
a megoldás .NET 8+ projektjeiben. Hasonlóképpen, ha egyes projektek kifejezetten a Directory.Build.Props fájl értékétől eltérő értéket adnak meg, a közzététel sikertelen lesz.Ha egy megoldást tesz közzé, és a teljesítmény visszafejlődött, a
DOTNET_CLI_LAZY_PUBLISH_AND_PACK_RELEASE_FOR_SOLUTIONS
környezeti változóttrue
(vagy bármely más értéket) beállíthatja a regresszió eltávolításához. Ha azonban beállítja ezt a változót, és a megoldás egy .NET 8+ projektet és egy .NET 7-et vagy korábbi verziót célbavevő projektet tartalmaz, a közzététel mindaddig sikertelen lesz, amíg az összes projekt meg nem határozPublishRelease
. Ez a változó minddotnet publish
adotnet pack
.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: