Sestavení v .NET

Sestavení tvoří základní jednotky nasazení, správy verzí, opětovného použití, oboru aktivace a oprávnění zabezpečení pro. Aplikace založené na síti. Sestavení je kolekce typů a prostředků, které jsou vytvořeny tak, aby vzájemně spolupracovaly a tvořily logickou jednotku funkčnosti. Sestavení mají formu spustitelného souboru (.exe) nebo souborů dynamické knihovny (.dll) a jsou stavebními bloky aplikací .NET. Poskytují modul CLR (Common Language Runtime) s informacemi, které musí být vědomy typu implementace.

v rozhraní .net Core a .NET Framework můžete sestavit sestavení z jednoho nebo více souborů zdrojového kódu. v .NET Framework sestavení mohou obsahovat jeden nebo více modulů. To umožňuje, aby byly větší projekty plánovány, aby několik vývojářů fungovalo na samostatných souborech nebo modulech zdrojového kódu, které jsou kombinovány pro vytvoření jednoho sestavení. Další informace o modulech naleznete v tématu How to: Build a vícesouborové sestavení.

Sestavení mají následující vlastnosti:

  • Sestavení jsou implementována jako .exe nebo .dll soubory.

  • pro knihovny cílené na .NET Framework můžete sdílet sestavení mezi aplikacemi jejich vložením do globální mezipaměti sestavení (GAC). Sestavení se silným názvem je nutné před tím, než je můžete zahrnout do globální mezipaměti sestavení (GAC). Další informace naleznete v tématu sestavení se silným názvem.

  • Sestavení jsou načtena do paměti pouze v případě, že jsou požadována. Pokud se nepoužívají, nebudou načteny. To znamená, že sestavení mohou představovat efektivní způsob správy prostředků ve větších projektech.

  • Můžete programově získat informace o sestavení pomocí reflexe. Další informace naleznete v tématu reflexe (C#) nebo Reflection (Visual Basic).

  • Sestavení lze načíst pouze pro kontrolu pomocí MetadataLoadContext třídy v rozhraní .NET Core a Assembly.ReflectionOnlyLoad Assembly.ReflectionOnlyLoadFrom metod nebo v rozhraní .net Core a .NET Framework.

Sestavení v modulu CLR (Common Language Runtime)

Sestavení poskytují modul CLR (Common Language Runtime) s informacemi, které musí být vědomy typu implementace. V modulu runtime neexistuje typ mimo kontext sestavení.

Sestavení definuje následující informace:

  • Kód, který modul common language runtime spouští. Všimněte si, že každé sestavení může mít pouze jeden vstupní bod: DllMain , WinMain nebo Main .

  • Hranice zabezpečení. Sestavení je jednotka, ve které jsou požadována a udělována oprávnění. Další informace o hranicích zabezpečení v sestaveních naleznete v tématu požadavky na zabezpečení sestavení.

  • Hranice typu Jednotlivé identity typu zahrnují název sestavení, ve kterém se nachází. Typ s názvem MyType, který je načten v oboru jednoho sestavení, není stejný jako typ s názvem MyType, který je načten v oboru jiného sestavení.

  • Hranice oboru odkazů Manifest sestavení má metadata, která se používají pro překlad typů a uspokojení požadavků na prostředky. Manifest určuje typy a prostředky, které mají být vystaveny mimo sestavení, a vytvoří výčet jiných sestavení, na kterých závisí. Kód jazyka MSIL (Microsoft Intermediate Language) v přenositelném spustitelném souboru (PE) nebude proveden pouze v případě, že má přidružený manifest sestavení.

  • Hranice verze Sestavení je nejmenší jednotka s možnou verzí v modulu CLR (Common Language Runtime). Všechny typy a prostředky ve stejném sestavení jsou ve verzi jako jednotka. Manifest sestavení popisuje závislosti verze, které zadáte pro všechna závislá sestavení. Další informace o tom, jak se správou verzí, najdete v tématu Správa verzí sestavení.

  • Jednotka nasazení. Při spuštění aplikace je nutné, aby byla k dispozici pouze ta sestavení, která aplikace zpočátku volá. Jiná sestavení, jako například sestavení obsahující prostředky lokalizace nebo obslužné třídy, lze načíst na vyžádání. To umožňuje, aby při prvním stažení aplikace byly jednoduché a tenké. Další informace o nasazení sestavení naleznete v tématu Deploy Applications.

  • Souběžná jednotka spuštění. Další informace o spuštění více verzí sestavení naleznete v tématu sestavení a souběžné spouštění.

Vytvoření sestavení

Sestavení mohou být statická nebo dynamická. Statická sestavení jsou uložena na disku v přenosných spustitelných souborech (PE). Statická sestavení mohou zahrnovat rozhraní, třídy a prostředky, jako jsou bitmapy, soubory JPEG a jiné soubory prostředků. Můžete také vytvořit dynamická sestavení, která se spouštějí přímo z paměti a nejsou uložena na disk před provedením. Na disk můžete dynamická sestavení uložit až poté, co jsou spuštěna.

Existuje několik způsobů vytváření sestavení. můžete použít vývojové nástroje, jako je například Visual Studio, které mohou vytvářet soubory .dll nebo .exe . pomocí nástrojů v Windows SDK můžete vytvářet sestavení s moduly z jiných vývojových prostředí. Můžete také použít rozhraní API modulu CLR (Common Language Runtime), jako System.Reflection.Emit je například, k vytvoření dynamického sestavení.

zkompilujte sestavení jejich sestavením v Visual Studio, sestavujte je pomocí nástrojů rozhraní příkazového řádku .net Core nebo sestavujte .NET Framework sestavení pomocí kompilátoru příkazového řádku. Další informace o vytváření sestavení pomocí .NET Core CLI naleznete v tématu .NET Core CLI Overview.

Poznámka

chcete-li sestavit sestavení v Visual Studio v nabídce sestavení vyberte možnost sestavit.

Manifest sestavení

Každé sestavení má soubor manifestu sestavení . Podobně jako obsah, manifest sestavení obsahuje:

  • Identita sestavení (jeho název a verze)

  • Tabulka souborů popisující všechny ostatní soubory, které tvoří sestavení, například jiná sestavení, která jste vytvořili, aby .exe nebo .dll soubor spoléhá na soubory rastrového obrázku nebo soubory Readme.

  • Seznam odkazů na sestavení, což je seznam všech vnějších závislostí, například .dll s nebo jiné soubory. Odkazy na sestavení obsahují odkazy na globální i privátní objekty. Globální objekty jsou k dispozici pro všechny ostatní aplikace. V rozhraní .NET Core jsou globální objekty spojeny s konkrétním modulem runtime .NET Core. v .NET Framework se globální objekty nacházejí v globální mezipaměti sestavení (GAC). System.IO.dll je příkladem sestavení v globální mezipaměti sestavení (GAC). Privátní objekty musí být v adresáři, ve kterém je vaše aplikace nainstalovaná, na úrovni adresáře nebo pod ním.

vzhledem k tomu, že sestavení obsahují informace o obsahu, správy verzí a závislostech, aplikace, které je používají, se nemusí podepisovat spoléhají na externí zdroje, jako je registr v systémech Windows, aby fungovaly správně. Sestavení snižují konflikty .dll a umožňují spolehlivější a snazší nasazení aplikací. V mnoha případech můžete nainstalovat. Pomocí čisté aplikace můžete jednoduše zkopírovat své soubory do cílového počítače. Další informace naleznete v tématu manifest sestavení.

Přidat odkaz na sestavení

Chcete-li použít sestavení v aplikaci, je nutné přidat odkaz na něj. Jakmile je odkazováno na sestavení, všechny dostupné typy, vlastnosti, metody a další členy svých oborů názvů jsou k dispozici pro vaši aplikaci, jako by jejich kód byl součástí zdrojového souboru.

Poznámka

Většina sestavení z knihovny tříd .NET je odkazována automaticky. pokud systémové sestavení není automaticky odkazováno, můžete pro .net Core přidat odkaz na balíček NuGet, který obsahuje sestavení. buď použijte NuGet Správce balíčků v Visual Studio, nebo přidejte <PackageReference> prvek pro sestavení do projektu . csproj nebo . vbproj . v .NET Framework můžete přidat odkaz na sestavení pomocí dialogového okna přidat odkaz v Visual Studio nebo pomocí -reference možnosti příkazového řádku pro kompilátory jazyka C# nebo Visual Basic .

V jazyce C# můžete použít dvě verze stejného sestavení v jediné aplikaci. Další informace najdete v tématu extern alias.

Nadpis Popis
Obsah sestavení Prvky, které tvoří sestavení.
Manifest sestavení Data v manifestu sestavení a jejich uložení v sestaveních.
Globální mezipaměť sestavení Jak globální mezipaměť sestavení (GAC) ukládá a používá sestavení.
Sestavení se silným názvem Charakteristiky sestavení se silným názvem.
Důležité informace o zabezpečení sestavení Jak zabezpečení funguje se sestaveními.
Verze sestavení Přehled zásad .NET Framework verzí
Umístění sestavení Kde najít sestavení.
Sestavení a souběžné spouštění Použít více verzí modulu runtime nebo sestavení současně.
Generování dynamických metod a sestavení Jak vytvářet dynamická sestavení.
Jak modul runtime vyhledá sestavení Způsob.NET Framework nástroj překládá odkazy na sestavení za běhu.

Reference

System.Reflection.Assembly

Viz také