Condividi tramite


Procedura: aggiungere un riferimento a un assembly con nome sicuro

Aggiornamento: novembre 2007

Il processo per la creazione di riferimenti a tipi o risorse di un assembly con nome sicuro è solitamente trasparente all'utente. È possibile creare tali riferimenti in fase di compilazione (associazione anticipata) o in fase di esecuzione.

Un riferimento in fase di compilazione viene creato quando si indica al compilatore che l'assembly contiene riferimenti espliciti a un altro assembly. Quando si utilizzano i riferimenti in fase di compilazione, il compilatore riceve automaticamente la chiave pubblica dell'assembly con nome sicuro a cui si fa riferimento e tale chiave viene posizionata nel riferimento di assembly dell'assembly in fase di compilazione.

Nota:

Un assembly con nome sicuro può utilizzare solo tipi di altri assembly con nome sicuro. In caso contrario, la protezione dell'assembly con nome sicuro risulterebbe compromessa.

Per creare un riferimento in fase di compilazione a un assembly con nome sicuro

  • Al prompt dei comandi, digitare il comando seguente:

    <comando compilatore> /reference:<nome assembly>

    In questo comando, comando compilatore corrisponde al comando del compilatore per il linguaggio utilizzato e nome assembly rappresenta il nome dell'assembly con nome sicuro a cui si fa riferimento. È possibile utilizzare anche altre opzioni del compilatore, ad esempio l'opzione /t:library per la creazione di un assembly di libreria.

L'esempio seguente consente di creare un assembly denominato myAssembly.dll che fa riferimento a un assembly con nome sicuro denominato myLibAssembly.dll da un modulo di codice denominato myAssembly.cs.

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

Per creare un riferimento in fase di esecuzione a un assembly con nome sicuro

  • Quando si crea un riferimento in fase di esecuzione a un assembly con nome sicuro, ad esempio quando si utilizzano i metodi Assembly.Load o Assembly.GetType, è necessario utilizzare il nome visualizzato dell'assembly con nome sicuro a cui si fa riferimento. La sintassi di un nome visualizzato è la seguente:

<nome assembly>, <numero versione>, <impostazioni cultura>, <token chiave pubblica>

Di seguito è riportato un esempio:

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

In questo esempio PublicKeyToken corrisponde al token di chiave pubblica in formato esadecimale. Se non è presente alcun valore relativo alle impostazioni cultura, specificare Culture=neutral.

Nell'esempio seguente viene mostrato come utilizzare queste informazioni con il metodo Assembly.Load.

Assembly.Load("myDll,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa32c18d4fb1")
Assembly.Load("myDll,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa32c18d4fb1");

È possibile stampare il formato esadecimale della chiave pubblica e del token di chiave pubblica per un assembly specifico utilizzando il seguente comando dello strumento Nome sicuro (Sn.exe):

sn -Tp <assembly>

Se si dispone di un file di chiave pubblica, è possibile utilizzare il seguente comando (si noti la differenza tra maiuscole e minuscole nell'opzione della riga di comando):

sn -tp <assembly>

Vedere anche

Altre risorse

Creazione e utilizzo degli assembly con nome sicuro