Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Sestavení jsou základními jednotkami nasazení, správy verzí, opakovaného použití, rozsahu aktivace a oprávnění zabezpečení pro aplikace založené na technologii .NET. Sestavení je kolekce typů a prostředků, které jsou vytvořeny tak, aby spolupracovaly a tvoří logickou jednotku funkcí. Sestavení mají formu spustitelných souborů (.exe) nebo dynamické knihovny odkazů (.dll) a jsou stavebními bloky aplikací .NET. Poskytují modul CLR (Common Language Runtime) informace, které potřebuje vědět o implementacích typů.
V rozhraní .NET a .NET Framework můžete sestavit sestavení z jednoho nebo více souborů zdrojového kódu. V rozhraní .NET Framework mohou sestavení obsahovat jeden nebo více modulů. Díky tomu lze větší projekty naplánovat tak, aby několik vývojářů fungovalo na samostatných souborech zdrojového kódu nebo modulech, které se kombinují za účelem vytvoření jednoho sestavení. Pro více informací o modulech se podívejte na Jak: Sestavit více-souborovou sestavu.
Sestavení mají následující vlastnosti:
Sestavení se implementují jako soubory.exe nebo soubory.dll.
Pro knihovny, které cílí na rozhraní .NET Framework, můžete sdílet sestavení mezi aplikacemi jejich umístěním do globální mezipaměti sestavení (GAC). Než můžete sestavení zahrnout do GAC, musíte je opatřit silným názvem. Další informace naleznete v části silně pojmenovaná sestavení.
Sestavení se načtou do paměti pouze v případě potřeby. Jestliže se nepoužívají, nebudou načteny. Sestavení proto mohou být efektivním způsobem, jak spravovat prostředky ve větších projektech.
Informace o sestavení můžete získat prostřednictvím kódu programu pomocí reflexe. Další informace najdete v tématu Reflexe (C#) nebo Reflexe (Visual Basic).
Sestavení můžete načíst pouze ke kontrole pomocí MetadataLoadContext třídy v rozhraní .NET a .NET Framework. MetadataLoadContext nahrazuje metody Assembly.ReflectionOnlyLoad.
Sestavení v modulu CLR (Common Language Runtime)
Sestavení poskytují CLR (Common Language Runtime) informace, které potřebuje, aby měl přehled o implementacích typů. Pro prostředí runtime neexistuje žádný typ mimo kontext konkrétního sestavení.
Sestavení definuje následující informace:
Kód , který spouští modul CLR (Common Language Runtime). Každé sestavení může mít pouze jeden vstupní bod:
DllMain
,WinMain
neboMain
.Hranice zabezpečení. Sestavení je jednotka, ve které jsou požadována a udělena oprávnění. Další informace ohranicích
Hranice typu. Každá identita typu obsahuje název sestavení, ve kterém se nachází. Typ,
MyType
který je načten v oboru jednoho sestavení, není stejný jako typ,MyType
který je načten v oboru jiného sestavení.Hranice oboru odkazu: Manifest sestavení má metadata, která se používají pro překlad typů a uspokojování požadavků na prostředky. Manifest určuje typy a prostředky, které mají být zveřejněny mimo sestavení, a uvádí výčet dalších sestavení, na kterých závisí. Běžný kód CIL (Common Intermediate Language) v přenosném spustitelném souboru (PE) se nespustí, pokud nemá přidružený manifest sestavení.
Hranice verze. Sestavení je nejmenší jednotka s možností správy verzí v modulu CLR (Common Language Runtime). Všechny typy a prostředky ve stejném sestavení jsou verzovány jako celek. Manifest sestavení popisuje závislosti verzí, které zadáte pro všechna závislá sestavení. Pro více informací o verzování sestavení viz Verzování sestavení.
Jednotka nasazení: Při spuštění aplikace musí být přítomna pouze sestavení, která aplikace původně volá. Na vyžádání lze načíst jiná sestavení, jako jsou sestavení obsahující lokalizační prostředky nebo třídy nástrojů. Tento proces umožňuje, aby aplikace byly při prvním stažení jednoduché a tenké. Další informace o nasazení sestavení naleznete v tématu Nasazení aplikací.
Souběžná spouštěcí jednotka: Další informace o spouštění více verzí sestavení naleznete v tématu Sestavení a souběžné spuštění.
Vytvořte 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 rastrové obrázky, soubory JPEG a další soubory prostředků. Můžete také vytvořit dynamická sestavení, která se spouští přímo z paměti a před spuštěním se neukládají na disk. Dynamická sestavení můžete po spuštění uložit na disk.
Existuje několik způsobů, jak vytvořit sestavení. Můžete použít vývojové nástroje, například Visual Studio, které můžou vytvářet .dll nebo .exe soubory. Pomocí nástrojů v sadě Windows SDK můžete vytvářet sestavení s moduly z jiných vývojových prostředí. K vytváření dynamických sestavení můžete použít také rozhraní API modulu CLR (Common Language Runtime), například System.Reflection.Emit.
Kompiluje sestavení tak, že je sestaví v sadě Visual Studio, sestaví je pomocí nástrojů příkazového řádku .NET Core nebo sestaví sestavení rozhraní .NET Framework pomocí kompilátoru příkazového řádku. Další informace o vytváření sestavení pomocí rozhraní .NET CLI naleznete v tématu .NET CLI přehled.
Poznámka:
Pokud chcete sestavení sestavit v sadě Visual Studio, vyberte v nabídce Sestavení možnost Sestavit.
Manifest sestavení
Každé sestavení má soubor manifestu sestavení . Manifest sestavení obsahuje podobně jako obsah:
Identita sestavení (její název a verze)
Tabulka souborů popisující všechny ostatní soubory, které tvoří sestavení, jako například jiná sestavení, která jste vytvořili a na která váš soubor .exe nebo .dll spoléhá, bitmapové soubory nebo soubory Readme.
Referenční seznam sestavení, což je seznam všech externích závislostí, jako jsou .dlls 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 .NET Core jsou globální objekty svázány s konkrétním modulem runtime .NET Core. V rozhraní .NET Framework se globální objekty nacházejí v globální mezipaměti sestavení (GAC). System.IO.dll je příkladem sestavení v GAC. Soukromé objekty musí být na úrovni adresáře nebo pod adresářem, ve kterém je aplikace nainstalovaná.
Sestavení obsahují informace o obsahu, správě verzí a závislostech. Aplikace, které je používají, proto nemusí ke správnému fungování spoléhat na externí zdroje, jako je registr v systémech Windows. Sestavení snižují konflikty.dll, zvyšují spolehlivost vašich aplikací a usnadňují jejich nasazení. V mnoha případech můžete nainstalovat aplikaci založenou na .NET jednoduše zkopírováním jejích souborů do cílového počítače. Další informace naleznete v manifestu sestavení.
Přidejte odkaz na sestavení
Chcete-li použít sestavení v aplikaci, musíte k němu přidat odkaz. Při odkazování na sestavení jsou pro vaši aplikaci k dispozici všechny přístupné typy, vlastnosti, metody a další členy jeho oborů názvů, jako by jejich kód byl součástí vašeho zdrojového souboru.
Poznámka:
Většina sestavení z knihovny tříd .NET se odkazuje automaticky. Pokud systémové sestavení není automaticky odkazováno, přidejte odkaz jedním z následujících způsobů:
- Pro .NET a .NET Core přidejte odkaz na balíček NuGet, který obsahuje sestavení. Buď použijte Správce balíčků NuGet v sadě Visual Studio, nebo přidejte <element PackageReference> pro sestavení do projektu .csproj nebo .vbproj .
- Pro .NET Framework přidejte referenci na sestavení pomocí dialogového okna Přidat odkaz v sadě Visual Studio nebo možnost
-reference
příkazového řádku pro kompilátory C# nebo Visual Basic.
V jazyce C# můžete použít dvě verze stejného sestavení v jedné aplikaci. Další informace najdete v externím aliasu.
Související obsah
Titulek | Popis |
---|---|
Obsah sestavení | Prvky, které tvoří sestavení. |
Manifest sestavení | Data v manifestu sestavení a způsob jejich ukládání v sestaveních. |
Globální mezipaměť sestavení | Jak GAC ukládá a používá sestavení. |
Sestavení se silným názvem | Vlastnosti silně pojmenovaných sestavení |
Aspekty zabezpečení sestavení | Jak funguje zabezpečení s komponenty. |
Verze sestavy | Přehled zásad správy verzí rozhraní .NET Framework |
Umístění sestavení | Kde vyhledat sestavení. |
Sestavení a souběžné spouštění | Současně používejte více verzí modulu runtime nebo sestavení. |
Generování dynamických metod a sestavení | Vytvoření dynamických sestavení |
Jak modul runtime vyhledá sestavení | Jak rozhraní .NET Framework řeší odkazy na sestavení za běhu. |