Sdílet prostřednictvím


Názvy sestavení

Název sestavení je uložen v metadatech a má významný vliv na obor sestavení a použití aplikací. Sestavení se silným názvem má plně kvalifikovaný název, který zahrnuje název sestavení, jazykovou verzi, veřejný klíč, číslo verze a volitelně architekturu procesoru. Vlastnost FullName slouží k získání plně kvalifikovaného názvu, často označovaného jako zobrazovaný název, pro načtená sestavení.

Modul runtime používá informace o názvu k vyhledání sestavení a odlišení od ostatních sestavení se stejným názvem. Například silně pojmenované sestavení zvané myTypes může mít následující plně kvalifikovaný název:

myTypes, Version=1.0.1234.0, Culture=en-US, PublicKeyToken=b77a5c561934e089c, ProcessorArchitecture=msil

V tomto příkladu plně kvalifikovaný název označuje, že myTypes sestavení má silný název s tokenem veřejného klíče, obsahuje jazykovou verzi pro americkou angličtinu a má číslo verze 1.0.1234.0. Jeho architektura procesoru je msil, což znamená, že bude za běhu (JIT) zkompilována do 32bitového nebo 64bitového kódu v závislosti na operačním systému a procesoru.

Návod

Informace ProcessorArchitecture umožňují procesorově specifické verze sestavení. Můžete vytvořit verze sestavení, jejichž identita se liší pouze podle architektury procesoru, například 32bitové a 64bitové verze specifické pro procesor. Architektura procesoru se nevyžaduje pro silné názvy. Další informace najdete v tématu AssemblyName.ProcessorArchitecture.

Kód, který požaduje typy v sestavení, musí používat plně kvalifikovaný název sestavení. Tomu se říká plně kvalifikovaná vazba. Částečná vazba, která určuje pouze název sestavení, není povolena při odkazování na sestavení v rozhraní .NET Framework.

Všechny odkazy na sestavení, která tvoří rozhraní .NET Framework, musí také obsahovat plně kvalifikovaný název sestavení. Například odkaz na sestavení System.Data .NET Framework pro verzi 1.0 by zahrnoval:

System.data, version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Verze odpovídá číslu verze všech sestavení rozhraní .NET Framework, která jsou dodávána s rozhraním .NET Framework verze 1.0. Pro sestavení rozhraní .NET Framework je hodnota kulturního nastavení vždy neutrální a veřejný klíč je stejný jako v předchozím příkladu.

Chcete-li například přidat odkaz na sestavení v konfiguračním souboru pro nastavení posluchače trasování, zahrnete plně kvalifikovaný název sestavení rozhraní .NET Framework:

<add name="myListener" type="System.Diagnostics.TextWriterTraceListener, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\myListener.log" />

Poznámka:

Modul runtime považuje názvy sestavení za nerozlišující velká a malá písmena při vytváření vazby na sestavení, ale zachovává případ, který se používá v názvu sestavení. Několik nástrojů v sadě Windows SDK zpracovává názvy sestavení s ohledem na velikost písmen. Nejlepších výsledků dosáhnete tak, že názvy sestavení spravujte, jako kdyby rozlišovaly velká a malá písmena.

Pojmenování komponent aplikace

Běhové prostředí při určování identity sestavení nezohledňuje název souboru. Identita sestavení, která se skládá z názvu sestavení, verze, kultury a silného názvu, musí být pro běhové prostředí jasná.

Pokud máte například sestavení s názvem myAssembly.exe , které odkazuje na sestavení s názvem myAssembly.dll, vazba proběhne správně, pokud spustíte myAssembly.exe. Pokud však jiná aplikace spustí myAssembly.exe pomocí metody AppDomain.ExecuteAssembly, modul runtime zjistí, že myAssembly je již načten při požadavku na vázání myAssembly.exe k myAssembly. V tomto případě myAssembly.dll se nikdy nenačte. Protože myAssembly.exe neobsahuje požadovaný typ, dojde k chybě TypeLoadException .

Chcete-li se tomuto problému vyhnout, ujistěte se, že sestavení, která tvoří vaši aplikaci, nemají stejný název sestavení nebo umístěte sestavení se stejným názvem do různých adresářů.

Poznámka:

Pokud v rozhraní .NET Framework vložíte sestavení se silným názvem do globální mezipaměti sestavení, musí název souboru sestavení odpovídat názvu sestavení, nikoli příponu názvu souboru, například .exe nebo .dll. Pokud je například název souboru sestavení myAssembly.dll, musí být myAssembly název sestavení. Soukromá sestavení nasazená pouze v kořenovém adresáři aplikace mohou mít název sestavení, který se liší od názvu souboru.

Viz také