Názvy sestavení

Název sestavení je uložen v metadatech a má významný dopad na rozsah sestavení a použití sestavení aplikací. Sestavení se silným názvem má plně kvalifikovaný název, který obsahuje název sestavení, jazykovou verzi, veřejný klíč a číslo verze. To je často označováno jako zobrazované jméno a pro načtené sestavení jej lze získat pomocí vlastnosti FullName .

Modul runtime používá tuto informaci k vyhledání sestavení a k jeho odlišení od ostatních sestavení se stejným názevem. Například sestavení se silným názvem 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
PoznámkaPoznámka

Architektura procesoru je přidána k identitě sestavení v rozhraní .NET Framework verze 2.0, což umožňuje vytvoření verzí sestavení pro specifické procesory.Můžete vytvořit verze sestavení, jejíž identita se liší pouze architekturou procesoru, například verze pro 32bitové procesory a 64bitové procesory.Architektura procesoru není vyžadována pro silné názvy.Další informace naleznete v tématu AssemblyName.ProcessorArchitecture.

V tomto příkladu plně kvalifikovaný název udává, že sestavení myTypes má silný název s tokenem s veřejným klíčem a má hodnotu jazykové verze nastavenu na americkou angličtinu a má číslo verze 1.0.1234.0. Jeho architektura procesoru je MSIL, což znamená, že kód bude za běhu zkompilovaný do 32bitové nebo 64bitové verze kódu v závislosti na operačním systému a procesoru.

Kód, který požaduje typy v sestavení, musí použít plně kvalifikovaný název sestavení. Tento postup se nazývá 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 sestavení na sestavení, která tvoří rozhraní .NET Framework musí také obsahovat plně kvalifikovaný název sestavení. Například, pro odkazování System.Data v rozhraní .NET Framework verze 1.0 je třeba zahrnout:

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

Všimněte si, že verze odpovídá číslu verze všech sestavení rozhraní .NET Framework, která jsou součástí rozhraní .NET Framework verze 1.0. Pro sestavení rozhraní .NET Frameworku je hodnota jazykové verze vždy neutrální a veřejný klíč je stejný jako v příkladu výše.

Například, chcete-li přidat odkaz na sestavení v konfiguračním souboru pro nastavení posluchače trasování, měli byste vložit plně kvalifikovaný název systémového sestavení platformy .NET Framework:

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

Modul runtime nerozlišuje velká a malá písmena v názvech sestavení při vytváření vazby na sestavení, ale zachová jakoukoli velikost písmen, která je použita v názvu sestavení.Několik nástrojů ve Windows Software Development Kit (SDK) zachází s názvy sestavení s ohledem na velikost písmen. Nejlepších výsledků dosáhnete, pokud budete s názvy sestavení pracovat tak, jako by rozlišovaly velká a malá písmena.

Pojmenování komponent aplikace

Modulu runtime nezohledňuje název souboru při určování identity sestavení. Identita sestavení, která se skládá z názvu sestavení, verze, jazykové verze a silného názvu, musí být jasná modulu runtime.

Například máte-li sestavení nazvané myAssembly.exe, které odkazuje na sestavení nazvané myAssembly.dll, vazba je správná, pokud spustíte myAssembly.exe. Avšak pokud jiná aplikace spouští myAssembly.exe pomocí metody AppDomain.ExecuteAssembly, modul runtime určuje, že myAssembly je již načteno, když myAssembly.exe žádá svázání s myAssembly. V tomto případě není myAssembly.dll nikdy načtena. Protože myAssembly.exe neobsahuje požadovaný typ, dojde k 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ámkaPoznámka

Jestliže umístíte sestavení se silným názvem do globální mezipaměti sestavení (GAC), název souboru sestavení se musí shodovat s názvem sestavení (bez připony souboru jako například .exe nebo .dll).Například, pokud název souboru sestavení je myAssembly.dll, název sestavení, musí být myAssembly.Soukromé sestavení nasazené pouze v kořenovém adresáři aplikace může mít název sestavení, který se liší od názvu souboru.

Viz také

Úkoly

Postupy: Určit plně kvalifikovaný název sestavení

Koncepty

Vytváření sestavení

Sestavení se silným názvem

Globální mezipaměť sestavení (GAC)

How the Runtime Locates Assemblies

Další zdroje

Programování se sestaveními