Przycinanie samodzielnych wdrożeń i plików wykonywalnych

Model wdrażania zależny od struktury jest najbardziej pomyślnym modelem wdrażania od momentu utworzenia platformy .NET. W tym scenariuszu deweloper aplikacji łączy tylko aplikacje i zestawy 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 aplikacji samodzielnej, w której środowisko uruchomieniowe platformy .NET i biblioteki środowiska uruchomieniowego 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 uruchomienia aplikacji jest wymagany tylko podzbiór zestawów struktury, a podzbiór 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 wyeliminować 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 przyciąć. 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, gdy są używane 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 zapewnienie zgodności biblioteki z przycinaniem, zobacz Przygotowywanie bibliotek platformy .NET do przycinania.

Włączanie przycinania

  1. Dodaj <PublishTrimmed>true</PublishTrimmed> element 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 Visual Studio.

Publikowanie za pomocą interfejsu wiersza polecenia

Poniższy przykład publikuje aplikację dla 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, aby funkcje niezgodne z przycinanie zostały wyłączone podczas wykonywania dotnet buildpolecenia . Można jednak również ustawić tę opcję jako argument na dotnet publishwartość :

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

Aby uzyskać więcej informacji, zobacz Publikowanie aplikacji .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 je utworzyć, a następnie wybierz typ docelowy folderu .

  2. Wybierz pozycję WięcejakcjiEdytuj>.

    Visual studio publish profile with edit button.

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

    • Ustaw opcję Tryb wdrożenia na wartość Samodzielna.
    • Ustaw docelowe środowisko uruchomieniowe na platformę, do której chcesz opublikować.
    • Wybierz pozycję Przytnij nieużywany kod.

    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ą 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 .NET za pomocą interfejsu wiersza polecenia platformy .NET.

Zobacz też