A "dotnet pack" kiadási konfigurációt használ
A dotnet pack
NuGet-csomagba kódot csomagoló parancs alapértelmezés szerint a konfiguráció helyett a Release
Debug
konfigurációt használja.
Előző viselkedés
Korábban a konfigurációt Debug
használta, kivéve, dotnet pack
ha a konfiguráció explicit módon lett megadva, vagy PackRelease
a beállítás értéke true
.
A PackRelease
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_PACK_RELEASE_FOR_SOLUTIONS
környezeti változó egy Visual Studio-megoldás részét képező projektben legyen használva PackRelease
.
Új viselkedés
Ha a .NET 8 SDK-val vagy egy újabb verzióval fejleszt, dotnet pack
alapértelmezés szerint minden projekthez használja a Release
konfigurációt. 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. Ezenkívül nem fog tudni hibakeresést végezni a csomagolt alkalmazásokban, ha a Debug
konfiguráció kifejezetten meg lett adva (például a használatával dotnet pack --configuration Debug
).
dotnet pack
egyszerre több cél-keretrendszer-moniker (TFM) is telepíthető. Ha a projekt több verziót céloz meg, és különböző PackRelease
értékekkel rendelkezik a különböző célokhoz, ütközést okozhat, ha egyes TFM-ek a konfigurációt, mások pedig a konfigurációt Debug
csomagoljákRelease
.
Megoldásban lévő projektek esetén:
dotnet pack
a Visual Studio-megoldásban lévő összes projektet becsomagolhatja, ha adott egy megoldásfájlt. A megoldás minden projektjéhezPackRelease
implicit módon be van állítvatrue
, ha nincs definiálva.dotnet pack
A megfelelő konfiguráció meghatározásához a megoldás összes projektjének meg kell egyeznie a megfelelő értékévelPackRelease
.Ez a változás a regresszió teljesítményét okozhatja
dotnet pack
, 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_PACK_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, amikor létrehoz egy csomagot, optimalizálni szeretné a kódot, és a hibakeresési információk kizárásával kisebbre állíthatja a csomagot.
A DOTNET_CLI_ENABLE_PACK_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 csomagolás konfigurálásának
Debug
explicit megadásához használja a-c
--configuration
következőtdotnet pack
: .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 egy megoldást csomagol, és az megszakadt, mert egy vagy több projekt explicit módon beállít egy értéket, minden projektben explicit módon be kell állítania
PackRelease
azfalse
értéketPackRelease
:<PropertyGroup> <PackRelease>false</PackRelease> </PropertyGroup>
Ha egy megoldást csomagol, és a teljesítmény vissza lett állítva, 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 ezt a változót és bármely projektet definiáljaPackRelease
, minden projektnek meg kell határoznia, vagy használhatja a Directory.Build.Props fájlt. 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: