Sdílet prostřednictvím


Postupy: Odkazování na sestavení se silným názvem

Proces odkazování na typy nebo prostředky v sestavení se silným názvem je obvykle transparentní. Odkaz můžete provést buď v době kompilace (časná vazba), nebo v době běhu.

Odkaz na čas kompilace nastane, když indikujete kompilátoru, že sestavení, které má být zkompilováno explicitně odkazuje na jiné sestavení. Když použijete odkazování na čas kompilace, kompilátor automaticky získá veřejný klíč cílového sestavení se silným názvem a umístí ho do odkazu sestavení kompilovaného sestavení.

Poznámka:

Sestavení se silným názvem může používat pouze typy z jiných sestavení se silným názvem. Jinak by došlo k ohrožení zabezpečení sestavení se silným názvem.

Vytvoření odkazu na sestavení se silným názvem

Do příkazového řádku zadejte následující příkaz:

<příkaz> kompilátoru/reference:<assembly name>

V tomto příkazu je příkaz kompilátoru příkazem kompilátoru pro jazyk, který používáte, a název sestavení je název sestavení se silným názvem, na které se odkazuje. Můžete také použít jiné možnosti kompilátoru , například možnost /t:library pro vytvoření sestavení knihovny.

Následující příklad vytvoří sestavení s názvem myAssembly.dll , které odkazuje na sestavení se silným názvem, které se nazývá myLibAssembly.dll z modulu kódu s názvem myAssembly.cs.

csc /t:library myAssembly.cs /reference:myLibAssembly.dll  

Vytvoření odkazu na sestavení se silným názvem za běhu

Když vytvoříte odkaz na sestavení se silným názvem, například pomocí Assembly.Load metody nebo Assembly.GetType metody, je nutné použít zobrazovaný název odkazovaného sestavení se silným názvem. Syntaxe zobrazovaného názvu je následující:

<název> sestavení,< číslo> verze,< jazyková verze>,< token veřejného klíče>

Příklad:

myDll, Version=1.1.0.0, Culture=en, PublicKeyToken=03689116d3a4ae33

V tomto příkladu PublicKeyToken je šestnáctková forma tokenu veřejného klíče. Pokud neexistuje hodnota jazykové verze, použijte Culture=neutral.

Následující příklad kódu ukazuje, jak používat tyto informace s metodou Assembly.Load .

Assembly^ myDll =
    Assembly::Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");
Assembly myDll =
    Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");
Dim myDll As Assembly = _
    Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1")

Šestnáctkový formát veřejného klíče a tokenu veřejného klíče pro konkrétní sestavení můžete vytisknout pomocí následujícího příkazu Strong Name (Sn.exe ):

sn -Tp < assembly >

Pokud máte soubor veřejného klíče, můžete místo toho použít následující příkaz (všimněte si rozdílu v případě možnosti příkazového řádku):

soubor veřejného klíče sn -tp < >

Viz také