Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per firmare un assembly con un nome sicuro, è necessario avere una coppia di chiavi pubblica/privata. Questa coppia di chiavi di crittografia pubblica e privata viene usata durante la compilazione per creare un assembly con nome sicuro. È possibile creare una coppia di chiavi usando lo strumento Nome sicuro (Sn.exe). I file di coppie di chiavi hanno in genere un'estensione .snk.
Annotazioni
In .NET (.NET Core e .NET 5 e versioni successive), i nomi sicuri non hanno la convalida del runtime. La firma con nome sicuro è rilevante principalmente per .NET Framework e .NET Standard 2.0 con scenari di interoperabilità di .NET Framework. Se non si ha come destinazione .NET Framework, in genere non è necessario assegnare un Strong Name all'assembly, a meno che l'organizzazione o gli utenti non lo richiedano.
Annotazioni
In Visual Studio, le pagine delle proprietà del progetto C# e Visual Basic includono una scheda Signing che consente di selezionare i file di chiave esistenti o di generare nuovi file di chiave senza usare Sn.exe. In Visual C++, è possibile specificare il percorso di un file di chiave esistente nella pagina Delle proprietà avanzate nella sezione Linker della sezione Proprietà di configurazione della finestra Pagine delle proprietà . L'uso dell'attributo AssemblyKeyFileAttribute per identificare le coppie di file chiave è stato reso obsoleto a partire da Visual Studio 2005.
Creare una coppia di chiavi
Annotazioni
Sn.exe non è incluso in .NET SDK in alcun sistema operativo. È disponibile solo in Windows, in cui è possibile ottenerlo installando Visual Studio o Windows SDK.
Per creare una coppia di chiavi, al prompt dei comandi digitare il comando seguente:
sn –k<nome file>
In questo comando il nome file è il nome del file di output contenente la coppia di chiavi.
Nell'esempio seguente viene creata una coppia di chiavi denominata sgKey.snk.
sn -k sgKey.snk
Se si intende ritardare la firma di un assembly e si controlla l'intera coppia di chiavi (che è improbabile all'esterno degli scenari di test), è possibile usare i comandi seguenti per generare una coppia di chiavi e quindi estrarre la chiave pubblica da esso in un file separato. Creare prima di tutto la coppia di chiavi:
sn -k keypair.snk
Estrarre quindi la chiave pubblica dalla coppia di chiavi e copiarla in un file separato:
sn -p keypair.snk public.snk
Dopo aver creato la coppia di chiavi, è necessario collocare il file in un percorso accessibile agli strumenti di firma strong name.
Quando si firma un assembly con un nome sicuro, Assembly Linker (Al.exe) cerca il file di chiave relativo alla directory corrente e alla directory di output. Quando si usano i compilatori della riga di comando, è sufficiente copiare la chiave nella directory corrente contenente i moduli di codice.
Se si usa una versione precedente di Visual Studio che non dispone di un Signing scheda nelle proprietà del progetto, il percorso del file di chiave consigliato è la directory del progetto con l'attributo file specificato nel modo seguente:
[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>