Odebrání nechtěných součástí a zachování pouze samostatně nasaditelných součástí a spustitelných souborů

Model nasazení závislý na rozhraní byl od vzniku platformy .NET nejspělým modelem nasazení. V tomto scénáři vývojář aplikací sbalí pouze sestavení aplikace a sestavení třetích stran s očekáváním, že modul runtime a knihovny modulu runtime .NET budou k dispozici v klientském počítači. Tento model nasazení je stále dominantním modelem v nejnovější verzi .NET, ale existují některé scénáře, kdy model závislý na rozhraní není nejlepší volbou. Alternativou je publikovat samostatnou aplikaci, kde jsou knihovny modulu runtime .NET a modulu runtime se seskupené společně s aplikacemi a sestaveními třetích stran.

Model nasazení se stříháním je specializovaná verze samostatně obsaženého modelu nasazení, která je optimalizovaná tak, aby se snížila velikost nasazení. Minimalizace velikosti nasazení je kritickým požadavkem pro některé scénáře na straně klienta, jako jsou aplikace Blazor. V závislosti na složitosti aplikace se odkazuje pouze na podmnožinu sestavení architektury a ke spuštění aplikace se vyžaduje podmnožina kódu v rámci každého sestavení. Nepoužité části knihoven jsou zbytečné a je možné je oříznout z zabalené aplikace.

Existuje však riziko, že analýza doby sestavení aplikace může způsobit selhání za běhu, protože nedokáže spolehlivě analyzovat různé problematické vzory kódu (z velké části se soustředí na použití reflexe). Pokud chcete tyto problémy zmírnit, vytvoří se upozornění vždy, když se vytřihovač nemůže plně analyzovat vzor kódu. Informace o tom, co upozornění pro oříznutí znamenají a jak je vyřešit, najdete v tématu Úvod k ořezávání upozornění.

Poznámka

  • Oříznutí je plně podporováno v .NET 6 a novějších verzích. V .NET Core 3.1 a .NET 5 bylo oříznutí experimentální funkcí.
  • Oříznutí je dostupné jenom pro aplikace, které jsou publikované samostatně.

Komponenty, které způsobují problémy s oříznutím

Upozornění

Ne všechny typy projektů je možné oříznout. Další informace naleznete v tématu Známé nekompatibility oříznutí.

Jakýkoli kód, který způsobuje problémy s analýzou času sestavení, není vhodný pro oříznutí. Některé běžné vzory kódování, které jsou problematické při použití aplikací, pocházejí z využití nevázaných reflexí a externích závislostí, které nejsou viditelné v době sestavení. Příkladem nevázané reflexe je starší serializátor, například serializace XML, a příkladem neviditelných externích závislostí je integrovaný model COM. Pokud chcete vyřešit upozornění oříznutí ve vaší aplikaci, přečtěte si článek Úvod k ořezávání a zajištění kompatibility knihovny s ořezáváním, viz Příprava knihoven .NET na oříznutí.

Povolení oříznutí

  1. Přidejte <PublishTrimmed>true</PublishTrimmed> do souboru projektu.

    Tato vlastnost vytvoří oříznutou aplikaci v samostatném publikování. Vypne také nekompatibilní funkce oříznutí a během sestavování zobrazí upozornění kompatibility oříznutí.

    <PropertyGroup>
        <PublishTrimmed>true</PublishTrimmed>
    </PropertyGroup>
    
  2. Pak aplikaci publikujte pomocí příkazu dotnet publish nebo Visual Studio.

Publikování pomocí rozhraní příkazového řádku

Následující příklad publikuje aplikaci pro Windows jako oříznutou samostatnou aplikaci.

dotnet publish -r win-x64

Oříznutí se podporuje jenom u samostatných aplikací.

<PublishTrimmed> v souboru projektu by měly být nastaveny tak, aby byly během dotnet buildoperace zakázány nekompatibilní funkce. Tuto možnost ale můžete nastavit také jako argument na dotnet publish:

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

Další informace najdete v tématu Publikování aplikací .NET pomocí rozhraní příkazového řádku .NET.

Publikování pomocí sady Visual Studio

  1. V Průzkumník řešení klikněte pravým tlačítkem myši na projekt, který chcete publikovat, a vyberte Publikovat.

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

    Pokud ještě nemáte profil publikování, vytvořte ho podle pokynů a zvolte cílový typ složky .

  2. Zvolte DalšíakceEdit>.

    Visual studio publish profile with edit button.

  3. V dialogovém okně Nastavení profilu nastavte následující možnosti:

    • Nastavte režim nasazení na samostatné.
    • Nastavte cílový modul runtime na platformu, do které chcete publikovat.
    • Vyberte Možnost Oříznout nepoužívaný kód.

    Výběrem možnosti Uložit uložte nastavení a vraťte se do dialogového okna Publikovat .

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

  4. Zvolte Publikovat a publikujte aplikaci oříznutou.

Další informace najdete v tématu Publikování aplikací .NET Core pomocí Visual Studio.

Publikování pomocí sady Visual Studio pro Mac

Visual Studio pro Mac neposkytuje možnosti publikování aplikace. Budete muset publikovat ručně podle pokynů v části Publikování pomocí rozhraní příkazového řádku . Další informace najdete v tématu Publikování aplikací .NET pomocí rozhraní příkazového řádku .NET.

Viz také