Przycinanie samodzielnych wdrożeń i plików wykonywalnych

Model wdrażania zależny od platformy jest najbardziej udanym modelem wdrażania od momentu utworzenia platformy .NET. W tym scenariuszu deweloper aplikacji dołącza tylko zestawy aplikacji i zestawów innych firm z oczekiwaniami, że środowisko uruchomieniowe i biblioteki środowiska uruchomieniowego platformy .NET będą dostępne na maszynie klienckiej. Ten model wdrażania nadal jest dominujący w najnowszej wersji platformy .NET, jednak istnieją pewne scenariusze, w których model zależny od struktury nie jest najlepszym wyborem. Alternatywą jest opublikowanie samodzielnej aplikacji, w której biblioteki środowiska uruchomieniowego i środowiska uruchomieniowego platformy .NET są połączone z aplikacją i zestawami innych firm.

Model wdrażania samodzielnego przycinania to wyspecjalizowana wersja samodzielnego modelu wdrażania zoptymalizowanego pod kątem zmniejszenia rozmiaru wdrożenia. Minimalizacja rozmiaru wdrożenia jest krytycznym wymaganiem w przypadku niektórych scenariuszy po stronie klienta, takich jak aplikacje platformy Blazor. W zależności od złożoności aplikacji do uruchamiania aplikacji jest wymagany tylko podzbiór zestawów struktury, a podzestaw kodu w każdym zestawie jest wymagany do uruchomienia aplikacji. Nieużywane części bibliotek są niepotrzebne i można je przyciąć z spakowanej aplikacji.

Istnieje jednak ryzyko, że analiza w czasie kompilacji aplikacji może powodować błędy w czasie wykonywania, ponieważ nie jest w stanie niezawodnie analizować różne problematyczne wzorce kodu (w dużej mierze skoncentrowane na użyciu odbicia). Aby rozwiązać te problemy, ostrzeżenia są generowane za każdym razem, gdy trymer nie może w pełni przeanalizować wzorca kodu. Aby uzyskać informacje o tym, co oznaczają ostrzeżenia dotyczące przycinania i jak je rozwiązać, zobacz Wprowadzenie do ostrzeżeń dotyczących przycinania.

Uwaga

  • Przycinanie jest w pełni obsługiwane na platformie .NET 6 i nowszych wersjach. W programach .NET Core 3.1 i .NET 5 przycinanie było funkcją eksperymentalną.
  • Przycinanie jest dostępne tylko dla aplikacji, które są publikowane samodzielnie.

Składniki, które powodują problemy z przycinaniem

Ostrzeżenie

Nie wszystkie typy projektów można przycinać. Aby uzyskać więcej informacji, zobacz Znane przycinanie niezgodności.

Każdy kod, który powoduje wyzwania związane z analizą czasu kompilacji, nie jest odpowiedni do przycinania. Niektóre typowe wzorce kodowania, które są problematyczne w przypadku używania przez aplikację, pochodzą z niezwiązanego użycia odbicia i zależności zewnętrznych, które nie są widoczne w czasie kompilacji. Przykładem niezwiązanego odbicia jest starszy serializator, taki jak serializacja XML, a przykładem niewidocznych zależności zewnętrznych jest wbudowany com. Aby rozwiązać problem z ostrzeżeniami dotyczącymi przycinania w aplikacji, zobacz Wprowadzenie do ostrzeżeń dotyczących przycinania oraz aby biblioteka mogła być zgodna z przycinaniem, zobacz Przygotowywanie bibliotek platformy .NET do przycinania.

Włączanie przycinania

  1. Dodaj <PublishTrimmed>true</PublishTrimmed> do pliku projektu.

    Ta właściwość spowoduje utworzenie przyciętej aplikacji do samodzielnego publikowania. Wyłącza również funkcje niezgodne z przycinanie i wyświetla ostrzeżenia dotyczące zgodności przycinania podczas kompilacji.

    <PropertyGroup>
        <PublishTrimmed>true</PublishTrimmed>
    </PropertyGroup>
    
  2. Następnie opublikuj aplikację przy użyciu polecenia dotnet publish lub programu Visual Studio.

Publikowanie za pomocą interfejsu wiersza polecenia

Poniższy przykład publikuje aplikację dla systemu Windows jako przyciętą aplikację samodzielną.

dotnet publish -r win-x64

Przycinanie jest obsługiwane tylko w przypadku aplikacji samodzielnie zawartych.

<PublishTrimmed>należy ustawić w pliku projektu, tak aby funkcje niezgodne z przycinanie zostały wyłączone podczas .dotnet build Można jednak również ustawić tę opcję jako argument na wartość dotnet publish:

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

Aby uzyskać więcej informacji, zobacz Publikowanie aplikacji platformy .NET za pomocą interfejsu wiersza polecenia platformy .NET.

Publikowanie za pomocą programu Visual Studio

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt, który chcesz opublikować, a następnie wybierz pozycję Publikuj.

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

    Jeśli nie masz jeszcze profilu publikowania, postępuj zgodnie z instrukcjami, aby go utworzyć i wybierz typ docelowy folderu .

  2. Wybierz pozycję Więcej akcji>Edytuj.

    Visual studio publish profile with edit button.

  3. W oknie dialogowym Ustawienia profilu ustaw następujące opcje:

    • Ustaw wartość Tryb wdrażania na Samodzielny.
    • Ustaw docelowe środowisko uruchomieniowe na platformę, do której chcesz opublikować.
    • Wybierz pozycję Przycinanie nieużywanego kodu.

    Wybierz pozycję Zapisz , aby zapisać ustawienia i wrócić do okna dialogowego Publikowanie .

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

  4. Wybierz pozycję Publikuj , aby opublikować aplikację przyciętą.

Aby uzyskać więcej informacji, zobacz Publikowanie aplikacji platformy .NET Core za pomocą programu Visual Studio.

Publikowanie za pomocą programu Visual Studio dla komputerów Mac

Visual Studio dla komputerów Mac nie udostępnia opcji publikowania aplikacji. Musisz opublikować ręcznie, postępując zgodnie z instrukcjami w sekcji Publikowanie za pomocą interfejsu wiersza polecenia . Aby uzyskać więcej informacji, zobacz Publikowanie aplikacji platformy .NET za pomocą interfejsu wiersza polecenia platformy .NET.

Zobacz też