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. FullName Vlastnost 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 volal myTypes sestavení se silným názvem 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, má hodnotu jazykové verze pro USA 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.

Tip

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 na webu 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 jazykové verze 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í naslouchacího procesu trasování, zahrnete plně kvalifikovaný název sestavení rozhraní .NET Framework systému:

<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í jako malá a velká písmena. Nejlepších výsledků dosáhnete tak, že názvy sestavení spravují tak, jako kdyby byly citlivé na malá a velká písmena.

Pojmenování komponent aplikace

Modul runtime při určování identity sestavení nepovažuje název souboru. Identita sestavení, která se skládá z názvu sestavení, verze, jazykové verze a silného názvu, musí být pro modul runtime 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 myAssembly.exe požadavky vazby na myAssembly . V tomto případě myAssembly.dll nikdy nenačtou. Vzhledem k tomu , ž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 myAssemblyná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é