Trimma fristående distributioner och körbara filer

Den ramverksberoende distributionsmodellen har varit den mest framgångsrika distributionsmodellen sedan .NET startades. I det här scenariot paketerar programutvecklaren endast program- och tredjepartssammansättningar med förväntningen att .NET-körnings- och körningsbiblioteken kommer att vara tillgängliga på klientdatorn. Den här distributionsmodellen fortsätter att vara den dominerande i den senaste .NET-versionen, men det finns vissa scenarier där den ramverksberoende modellen inte är det bästa valet. Alternativet är att publicera ett fristående program, där .NET-runtime- och runtime-biblioteken paketeras tillsammans med programmet och sammansättningar från tredje part.

Den fristående distributionsmodellen är en specialiserad version av den fristående distributionsmodellen som är optimerad för att minska distributionsstorleken. Att minimera distributionsstorleken är ett viktigt krav för vissa scenarier på klientsidan, till exempel Blazor-program. Beroende på programmets komplexitet refereras endast en delmängd av ramverkssammansättningarna och en delmängd av koden i varje sammansättning krävs för att köra programmet. De oanvända delarna av biblioteken är onödiga och kan trimmas från det paketerade programmet.

Det finns dock en risk att byggtidsanalysen av programmet kan orsaka fel vid körning på grund av att de inte kan analysera olika problematiska kodmönster på ett tillförlitligt sätt (till stor del centrerad på reflektionsanvändning). För att undvika dessa problem genereras varningar när trimmern inte kan analysera ett kodmönster fullständigt. Information om vad trimvarningarna betyder och hur du löser dem finns i Introduktion till trimningsvarningar.

Kommentar

  • Trimning stöds fullt ut i .NET 6 och senare versioner. I .NET Core 3.1 och .NET 5 var trimning en experimentell funktion.
  • Trimning är endast tillgängligt för program som publiceras fristående.

Komponenter som orsakar trimningsproblem

Varning

Alla projekttyper kan inte trimmas. Mer information finns i Kända trimnings-inkompatibiliteter.

All kod som orsakar problem med byggtidsanalys är inte lämplig för trimning. Några vanliga kodningsmönster som är problematiska när det används av ett program kommer från obundna reflektionsanvändningar och externa beroenden som inte visas vid bygget. Ett exempel på obundna reflektioner är en äldre serialiserare, till exempel XML-serialisering, och ett exempel på osynliga externa beroenden är inbyggd COM. Information om hur du åtgärdar trimningsvarningar i programmet finns i Introduktion till trimningsvarningar och för att göra biblioteket kompatibelt med trimning finns i Förbereda .NET-bibliotek för trimning.

Aktivera trimning

  1. Lägg till <PublishTrimmed>true</PublishTrimmed> i projektfilen.

    Den här egenskapen skapar en trimmad app vid fristående publicering. Den inaktiverar även trim-inkompatibla funktioner och visar trimkompatibilitetsvarningar under bygget.

    <PropertyGroup>
        <PublishTrimmed>true</PublishTrimmed>
    </PropertyGroup>
    
  2. Publicera sedan din app med antingen dotnet-publiceringskommandot eller Visual Studio.

Publicera med CLI

I följande exempel publiceras appen för Windows som ett trimmat fristående program.

dotnet publish -r win-x64

Trimning stöds endast för fristående appar.

<PublishTrimmed> ska anges i projektfilen så att trim-inkompatibla funktioner inaktiveras under dotnet build. Du kan dock också ange det här alternativet som ett argument till dotnet publish:

dotnet publish -r win-x64 -p:PublishTrimmed=true

Mer information finns i Publicera .NET-appar med .NET CLI.

Publicera med Visual Studio

  1. Högerklicka på det projekt som du vill publicera i Solution Explorer och välj Publicera.

    Solution Explorer with a right-click menu highlighting the Publish option.

    Om du inte redan har en publiceringsprofil följer du anvisningarna för att skapa en och väljer måltypen Mapp .

  2. Välj Fler åtgärder>Redigera.

    Visual studio publish profile with edit button.

  3. I dialogrutan Profilinställningar anger du följande alternativ:

    • Ange Distributionsläge till Fristående.
    • Ange Målkörning till den plattform som du vill publicera till.
    • Välj Trimma oanvänd kod.

    Välj Spara för att spara inställningarna och återgå till dialogrutan Publicera .

    Profile settings dialog with deployment mode, target runtime, and trim unused assemblies options highlighted.

  4. Välj Publicera för att publicera appen trimmad.

Mer information finns i Publicera .NET Core-appar med Visual Studio.

Publicera med Visual Studio för Mac

Visual Studio för Mac tillhandahåller inte alternativ för att publicera din app. Du måste publicera manuellt genom att följa anvisningarna i avsnittet Publicera med CLI . Mer information finns i Publicera .NET-appar med .NET CLI.

Se även