Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Kommandot dotnet publish
använder nu konfigurationen Release
i stället för konfigurationen Debug
som standard om målramverket är .NET 8 eller en senare version.
dotnet publish
Tidigare använde du konfigurationen Debug
om inte konfigurationen uttryckligen angavs eller PublishRelease
var inställd på true
.
Egenskapen PublishRelease
lades till i .NET 7 som en sökväg framåt till den här icke-bakåtkompatibla ändringen. Tidigare kunde du ange miljövariabeln DOTNET_CLI_ENABLE_PUBLISH_RELEASE_FOR_SOLUTIONS
som ska användas PublishRelease
i ett projekt som ingick i en Visual Studio-lösning.
Om du utvecklar med .NET 8 SDK eller en senare version dotnet publish
använder du konfigurationen Release
som standard för projekt vars TargetFramework
är inställt på net8.0
eller en senare version. Om du har ett CI/CD-skript, tester eller kod där du har hårdkodat Debug
till en utdatasökväg kan den här ändringen bryta arbetsflödet.
Om projektet riktar sig mot flera versioner gäller det nya beteendet endast om du anger ett målramverk för .NET 8 eller senare när du publicerar (till exempel med ).dotnet publish -f net8.0
För projekt i en lösning:
dotnet publish
kan publicera alla projekt i en Visual Studio-lösning om de får en lösningsfil. För lösningsprojekt som riktar in sig på .NET 8 eller senare anges värdet PublishRelease
för implicit till true
om det är odefinierat. Men för dotnet publish
att kunna fastställa rätt konfiguration som ska användas för lösningen måste alla projekt i lösningen komma överens om värdet för PublishRelease
. Om ett äldre projekt i lösningen har PublishRelease
angetts till false
bör du uttryckligen ange egenskapen till false
för alla nya .NET 8+-projekt.
Den här ändringen kan leda till regressionsprestanda dotnet publish
, särskilt för lösningar som innehåller många projekt. För att åtgärda detta har en ny miljövariabel DOTNET_CLI_LAZY_PUBLISH_AND_PACK_RELEASE_FOR_SOLUTIONS
introducerats.
Miljövariabeln DOTNET_CLI_ENABLE_PUBLISH_RELEASE_FOR_SOLUTIONS
känns inte längre igen.
Förhandsversion 1 av .NET 8
Den här ändringen kan påverka källkompatibiliteten och är också en beteendeförändring.
I de flesta fall när du publicerar vill du att koden ska optimeras och kan hålla appen mindre genom att exkludera felsökningsinformation. Kunder har bett Release
om att vara standardkonfigurationen under publish
en längre tid. Visual Studio har också haft det här beteendet i många år.
Miljövariabeln DOTNET_CLI_ENABLE_PUBLISH_RELEASE_FOR_SOLUTIONS
togs bort eftersom det beteende som den aktiverade nu är standardbeteendet och den detaljerade kontrollen inte längre behövs.
Om du vill inaktivera det nya beteendet helt kan du ange DOTNET_CLI_DISABLE_PUBLISH_AND_PACK_RELEASE
miljövariabeln till true
(eller något annat värde). Den här variabeln påverkar både dotnet publish
och dotnet pack
.
Om du uttryckligen vill ange konfigurationen Debug
för publicering använder du -c
alternativet eller --configuration
med dotnet publish
.
Om din CI/CD-pipeline bryts på grund av hårdkodade utdatasökvägar uppdaterar du sökvägarna till i stället för Release
, inaktiverar det nya beteendet med hjälp DOTNET_CLI_DISABLE_PUBLISH_AND_PACK_RELEASE
av Debug
miljövariabeln eller anger att konfigurationen Debug
ska användas.
Om du publicerar en lösning och den är bruten kan du uttryckligen ange PublishRelease
till true
(eller false
återgå till det tidigare beteendet).
<PropertyGroup>
<PublishRelease>true</PublishRelease>
</PropertyGroup>
Du kan också ange egenskapen i en Directory.Build.Props-fil . Men om du anger den i den false
här filen måste du fortfarande uttryckligen ange egenskapen till false
i .NET 8+-projekten i lösningen. På samma sätt misslyckas publiceringen om vissa projekt uttryckligen anger ett värde som skiljer sig från värdet i filen Directory.Build.Props .
Om du publicerar en lösning och prestandan har regresserats kan du ange DOTNET_CLI_LAZY_PUBLISH_AND_PACK_RELEASE_FOR_SOLUTIONS
miljövariabeln till true
(eller något annat värde) för att ta bort regressionen. Men om du anger den här variabeln och lösningen innehåller ett .NET 8+-projekt och ett projekt som riktar sig mot .NET 7 eller tidigare misslyckas publiceringen tills alla projekt definierar PublishRelease
. Den här variabeln påverkar både dotnet publish
och dotnet pack
.
Feedback om .NET
.NET är ett öppen källkod projekt. Välj en länk för att ge feedback:
Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Modul
Publish an ASP.NET Core app - Training
Learn how to publish an ASP.NET Core app for deployment to a web server or cloud service.