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 rozhraní .NET nejúspěšnějším modelem nasazení. V tomto scénáři vývojář aplikace sbalí pouze aplikace a sestavení třetích stran s očekáváním, že modul runtime .NET a knihovny modulu runtime budou k dispozici na 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 publikování samostatné aplikace, ve které jsou knihovny modulu runtime .NET a modulu runtime spojeny společně s aplikacemi a sestaveními třetích stran.

Model nasazení se stříháním je specializovaná verze samostatného modelu nasazení, která je optimalizovaná pro snížení velikosti 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 z zabalené aplikace oříznout.

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, vygenerují se upozornění vždy, když zatřižovač nemůže plně analyzovat vzor kódu. Informace o tom, co znamenají upozornění oříznutí a jak je vyřešit, najdete v tématu Úvod k oříznutí 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

Upozorňující

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

Jakýkoli kód, který způsobuje problémy analýzy č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 nevázaného použití reflexe a externích závislostí, které nejsou viditelné v době sestavení. Příkladem nevázaného odrazu je starší serializátor, například serializace XML, a příklad neviditelných externích závislostí je integrovaný v modelu COM. Pokud chcete vyřešit upozornění oříznutí ve vaší aplikaci, přečtěte si téma Úvod k oříznutí upozornění a zajištění kompatibility knihovny s oříznutí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 při vlastním publikování. Vypne také nekompatibilní funkce oříznutí a během sestavování zobrazí upozornění na kompatibilitu oříznutí.

    <PropertyGroup>
        <PublishTrimmed>true</PublishTrimmed>
    </PropertyGroup>
    
  2. Pak aplikaci publikujte pomocí příkazu dotnet publish nebo sady 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> soubor projektu by měl být nastaven tak, aby byly během dotnet buildobdobí 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 na projekt, který chcete publikovat, a vyberte Publikovat.

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

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

  2. Zvolte Další akce>Upravit.

    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 Střih nepoužívaného kódu.

    Pokud chcete nastavení uložit, zvolte Uložit 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í sady Visual Studio.

Publikování pomocí sady Visual Studio pro Mac

Visual Studio pro Mac nenabízí 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é