Come installare un assembly nella cache assembly globali in C#

Traduzione articoli Traduzione articoli
Identificativo articolo: 815808 - Visualizza i prodotti a cui si riferisce l’articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene descritto come generare un nome sicuro per un assembly e come installare un file dll nella Global Assembly Cache (GAC). Con la Global Assembly Cache, è possibile condividere gli assembly tra molte applicazioni. Nella Global Assembly Cache viene installata automaticamente con il runtime .NET. I componenti vengono in genere memorizzati in C:\WINNT\Assembly.

Per installare un assembly nella Global Assembly Cache, è necessario assegnare all'assembly in un nome sicuro. Il nome è una chiave di hash crittografia o firma. Questo nome sicuro garantisce il controllo delle versioni corrette del componente. Questo consente di evitare i componenti che hanno lo stesso nome da conflitto tra loro o in modo non corretto venga utilizzato da un'applicazione molto.


Requisiti

Nell'elenco seguente sono indicati hardware, software, infrastruttura di rete e i service pack necessari:
  • Diritti di amministratore per il computer in cui verrà installato nell'assembly condiviso

In questo articolo si presume la conoscenza dei seguenti argomenti:
  • Generale familiarità con gli assembly in. NET.
  • Generale familiarità con l'utilizzo di strumenti, al prompt dei comandi.

Cache assembly globale

Per creare un piccolo progetto libreria di classi utilizzando Visual Studio, per generare un nome sicuro e per installare il file DLL del progetto nella Global Assembly Cache, attenersi alla seguente procedura:
  1. In Visual Studio, creare un nuovo progetto libreria di classi Visual C# e denominare il progetto GACDemo .
  2. È necessario utilizzare un nome sicuro. Per generare questo coppia di chiavi crittografiche, utilizzare lo strumento di NS. Questo strumento è disponibile nella sottodirectory \bin in cui è installato il soluzioni Developer Kit (SDK) di .NET Framework. Lo strumento SN è facile da utilizzare. L'istruzione della riga di comando accetta i seguenti
    "[DriveLetter]:\[DirectoryToPlaceKey]\[KeyName].snk" sn -k
    Nota In Visual Studio 2005 e versioni successive di Visual Studio, è possibile utilizzare le proprietà del progetto IDE per generare una coppia di chiavi e firmare l'assembly. Quindi, è possibile ignorare il passaggio 3 e 4 di passaggio e inoltre passare apportare le modifiche del codice al file AssemblyInfo.cs.

    Per utilizzare le proprietà del progetto IDE per generare una coppia di chiavi per firmare l'assembly e attenersi alla seguente procedura:
    1. In Esplora soluzioni, fare clic con il pulsante destro del mouse su GACDemo e scegliere Proprietà .
    2. Fare clic sulla scheda firma e quindi fare clic su per selezionare la casella di controllo Firma assembly .
    3. Nell'elenco Selezionare una chiave con nome sicuro , fare clic su <New...>.
    4. Tipo GACkey.snk il nome del file di chiave, fare clic per deselezionare la casella di controllo Proteggi file di chiave con una password e quindi fare clic su OK .
    5. Premere CTRL + MAIUSC + B per compilare il progetto.
    Dopo aver eseguito questa procedura, è comunque necessario seguire il passaggio 5 per installare l'assembly nella cache globale.
  3. Creare una directory denominata GACKey in C:\, in modo che è facilmente possibile individuare la chiave e accedere alla chiave al prompt dei comandi.

    Nota Per la maggior parte degli utenti, gli strumenti di .NET si trovano nella cartella Files\Microsoft.NET\FrameworkSDK\Bin. Prima di digitare il seguente comando NS, sarà necessario copiare questo percorso simile nel computer nella directory bin di .NET. Digitare cd al prompt dei comandi, fare clic con il pulsante destro del mouse per incollare il percorso e quindi premere INVIO per passare rapidamente alla directory in cui si trova lo strumento SN.

    Digitare quanto segue:
    sn -k "C:\GACKey\GACkey.snk"
  4. Viene generata una chiave, ma non è ancora associato con l'assembly del progetto. Per creare questa associazione, fare doppio clic sul file AssemblyInfo.cs in Esplora soluzioni di Visual Studio .NET. Questo file è l'elenco di attributi assembly inclusi per impostazione predefinita quando viene creato un progetto in Visual Studio. NET. Modificare il AssemblyKeyFile assembly attributo nel codice, come illustrato di seguito:
    [ assembly: AssemblyKeyFile("C:\\GACKey\\GACKey.snk") ]
    Compilare il progetto facendo clic su CTRL + MAIUSC + B. Non si dispone per qualsiasi codice aggiuntivo per installare un file dll nella Global Assembly Cache.
  5. È possibile installare il file DLL utilizzando lo strumento di Gacutil o trascinando il file dll nella cartella appropriata. Se si utilizza il Gacutil strumento, è possibile utilizzare un comando analogo al seguente:
    Gacutil - I "[DriveLetter]:\[PathToBinDirectoryInVSProject]\gac.dll"
    Per trascinare il file, è possibile aprire due istanze di Esplora risorse. In un'istanza, trovare il percorso dell'output del file DLL per il progetto console. Nell'altra istanza, è necessario trovare c:\[SystemRoot]\Assembly. Quindi, trascinare il file dll nella cartella dell'assembly .

Listato completo del codice (AssemblyInfo.cs)

using System.Reflection;
using System.Runtime.CompilerServices;

//
// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// that is associated with an assembly.
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

//
// Version information for an assembly is made up of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values, or you can default the revision and build numbers 
// by using the '*' as shown below:

[assembly: AssemblyVersion("1.0.*")]

//
// To sign your assembly you must specify a key to use. See the 
// Microsoft .NET Framework documentation for more information about assembly signing.
//
// Use the following attributes to control that key is used for signing. 
//
// Notes: 
//   (*) If no key is specified, the assembly is not signed.
//   (*) KeyName refers to a key that has been installed in the Crypto Service
//       Provider (CSP) on your computer. KeyFile refers to a file that contains
//       a key.
//   (*) If the KeyFile and the KeyName values are both specified, the 
//       following processing occurs:
//       (1) If the KeyName can be found in the CSP, that key is used.
//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
//           in the KeyFile is installed to the CSP and used.
//   (*) To create a KeyFile, you can use the sn.exe (Strong Name) utility.
//       When specifying the KeyFile, the location of the KeyFile must be
//       relative to the project output directory which is
//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
//       located in the project directory, you would specify the AssemblyKeyFile 
//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
//       documentation for more information about this.
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("C:\\GACKey\\GACKey.snk")]
[assembly: AssemblyKeyName("")]

Verifica

  1. Avviare Esplora risorse.
  2. Individuare C:\ SystemRoot \ assembly.
  3. GACDemo è visualizzato nell'elenco dei file DLL installati.

Riferimenti

Per ulteriori informazioni, visitare i seguenti siti Web Microsoft:
L'installazione di un assembly nella Global Assembly Cache
http://msdn2.microsoft.com/en-us/library/dkkx7f79(vs.71).aspx
Cache assembly globale
http://msdn2.microsoft.com/en-us/library/yf1d93sz(vs.71).aspx
Strumento cache di assembly globale
http://msdn2.microsoft.com/en-us/library/ex0ss12c(vs.71).aspx

Proprietà

Identificativo articolo: 815808 - Ultima modifica: domenica 13 maggio 2007 - Revisione: 3.9
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Chiavi: 
kbmt kbcodesign kbcommandline kbnamespace kbhowtomaster KB815808 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell’articolo: 815808
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Kontaktieren Sie uns, um weitere Hilfe zu erhalten

Kontaktieren Sie uns, um weitere Hilfe zu erhalten
Wenden Sie sich an den Answer Desk, um professionelle Hilfe zu erhalten.