Installare un assembly nella Global Assembly Cache di .NET Framework

Questo articolo descrive come installare un assembly .dll file nella Global Assembly Cache di Microsoft .NET Framework e creare un assembly con un nome sicuro usando Visual Studio.

Versione originale del prodotto: .NET Framework, Visual Studio
Numero KB originale: 910355

Riepilogo

Per installare un file .dll assembly nella Global Assembly Cache di .NET Framework, è possibile usare lo strumento Global Assembly Cache di .NET Framework SDK. È anche possibile usare lo strumento Global Assembly Cache per verificare che l'assembly sia installato nella Global Assembly Cache. Per eseguire questa attività, è possibile disporre dei diritti di amministratore per il computer in cui è installato l'assembly condiviso. Inoltre, è necessario installare .NET Framework SDK.

Per una versione di Visual C# .NET di questo articolo, vedere Come installare un assembly nella Global Assembly Cache in Visual C#.

Global Assembly Cache

La Global Assembly Cache di .NET Framework è una cache del codice. La Global Assembly Cache viene installata automaticamente in ogni computer in cui è installato .NET Framework Common Language Runtime. Qualsiasi applicazione installata nel computer può accedere alla Global Assembly Cache. La Global Assembly Cache archivia gli assembly designati per essere condivisi da diverse applicazioni nel computer. Gli assembly dei componenti vengono in genere archiviati nella C:\WINNT\Assembly cartella .

Nota

Installare un assembly nella Global Assembly Cache solo quando è necessario condividere l'assembly. A meno che la condivisione di un assembly non sia esplicitamente richiesta, è consigliabile mantenere private le dipendenze degli assembly e individuare l'assembly nella directory dell'applicazione. Inoltre, non è necessario installare un assembly nella Global Assembly Cache per rendere l'assembly disponibile per l'interoperabilità COM (Microsoft Component Object Model) o per il codice non gestito.

Un assembly

Un assembly è una parte fondamentale della programmazione con .NET Framework. Un assembly è un blocco predefinito riutilizzabile e auto-descrittivo di un'applicazione Common Language Runtime di .NET Framework.

Un assembly contiene uno o più componenti di codice eseguiti da Common Language Runtime. Tutti i tipi e tutte le risorse nello stesso assembly formano una singola versione dell'unità. Il manifesto dell'assembly descrive le dipendenze di versione specificate per gli assembly dipendenti. Usando un assembly, è possibile specificare regole di versione tra componenti software diversi ed è possibile applicare tali regole in fase di esecuzione. Un assembly supporta l'esecuzione side-by-side. WHich consente l'esecuzione di più versioni contemporaneamente.

Firma con nome sicuro

Un assembly deve avere un nome sicuro da installare nella Global Assembly Cache. Un nome sicuro è un'identità univoca a livello globale che non può essere falsificato da un altro utente. Usando un nome sicuro, si impedisce ai componenti con lo stesso nome di entrare in conflitto tra loro o di essere usati in modo non corretto da un'applicazione chiamante. La firma dell'assembly associa un nome sicuro a un assembly. La firma dell'assembly è anche denominata firma con nome sicuro. Un nome sicuro è costituito dalle informazioni seguenti:

  • Nome di testo semplice dell'assembly
  • Numero di versione dell'assembly
  • Informazioni sulle impostazioni cultura relative all'assembly, se queste informazioni vengono fornite
  • Coppia di chiave pubblica e chiave privata

Queste informazioni vengono archiviate in un file di chiave. Il file di chiave è un file con estensione pfx (Personal Information Exchange) o un certificato dell'archivio certificati Microsoft Windows dell'utente corrente.

È possibile firmare un assembly usando le opzioni disponibili nella scheda Firma del progetto Designer in Visual Studio. In Visual Studio il file di chiave deve essere archiviato nella cartella del progetto nel computer locale. Visual Studio supporta solo i formati di file seguenti:

  • File con estensione pfx (Personal Information Exchange)
  • File di chiave con nome sicuro (con estensione snk)

Requisiti

Prima di installare un assembly nella Global Assembly Cache, è possibile soddisfare i requisiti seguenti:

  • È necessario disporre dei diritti di amministratore per il computer in cui è installato l'assembly condiviso.
  • È necessario installare .NET Framework SDK.

Questo articolo presuppone che si abbia familiarità con gli argomenti seguenti:

  • Familiarità generale con gli assembly condivisi in .NET.
  • Familiarità generale con l'uso degli strumenti al prompt dei comandi.

Installare un assembly nella Global Assembly Cache

Questo metodo si basa su come creare un assembly usando Visual Studio. Per creare un assembly che può essere condiviso da più applicazioni, l'assembly condiviso deve avere un nome sicuro. Inoltre, l'assembly condiviso deve essere distribuito nella Global Assembly Cache.

Per creare un piccolo assembly Visual C# con un nome sicuro e per installare il file di .dll compilato nella Global Assembly Cache, seguire questa procedura:

  1. Creare un nuovo progetto libreria di classi Visual C# denominato GACDemo. Per effettuare questa operazione, seguire questi passaggi:

    1. Avviare Visual Studio.
    2. Scegliere Nuovo progetto dal menu File.
    3. Nell'elenco Modelli selezionare Libreria di classi.
    4. Nella casella Nome digitare GACDemo e quindi selezionare OK.
    5. Per salvare il progetto, premere CTRL+MAIUSC+S.
    6. Nella casella Percorso digitare C:\DemoProjects.
    7. Deselezionare la casella di controllo Crea directory per la soluzione e quindi selezionare Salva.
  2. Generare un nome sicuro e quindi associare il file di chiave con nome sicuro all'assembly. Per effettuare questa operazione, seguire questi passaggi:

    1. Nel menu Progetto selezionare GACDemo Properties (Proprietà GACDemo).

    2. Nella scheda Firma selezionare la casella di controllo Firma assembly.

    3. In Scegliere un file di chiave con nome sicuro selezionare <Nuovo>.

    4. Nella finestra di dialogo Crea chiave con nome sicuro selezionare la casella di controllo Proteggi il file di chiave con una password .

    5. Nella casella Nome file chiave digitare GACDemo.

    6. Nella casella Immettere la password digitare la password da usare.

    7. Nella casella Conferma password digitare la stessa password e quindi selezionare OK.

      Nota

      È consigliabile usare sempre una password quando si crea un file di chiave. Un nuovo file di chiave protetto da una password viene sempre creato nel formato pfx.

    8. Per compilare il progetto, premere CTRL+MAIUSC+B.

      Nota

      Non è necessario alcun codice aggiuntivo per installare un file .dll nella Global Assembly Cache.

  3. Installare il file .dll creato nel passaggio 2 nella Global Assembly Cache usando lo strumento Global Assembly Cache. Per effettuare questa operazione, seguire questi passaggi:

    1. Selezionare Start, selezionare Esegui, digitare cmd e quindi selezionare OK.
    2. Modificare la directory di lavoro corrente nella directory in cui è installato .NET Framework SDK.
    3. Al prompt dei comandi digitare il gacutil -I "C:\DemoProjects\GACDemo\bin\Release\GACDemo.dll" comando e quindi premere INVIO.

Verificare che l'assembly sia installato nella Global Assembly Cache

È possibile usare lo strumento Global Assembly Cache per verificare che l'assembly sia installato nella Global Assembly Cache. Per effettuare questa operazione, seguire questi passaggi:

  1. Selezionare Start, selezionare Esegui, digitare cmd e quindi selezionare OK.

  2. Modificare la directory di lavoro corrente nella directory in cui è installato .NET Framework SDK.

  3. Per visualizzare le informazioni di installazione sull'assembly GACDemo, usare lo strumento Global Assembly Cache. A tale scopo, digitare il gacutil -l GACDemo comando al prompt dei comandi e quindi premere INVIO.

    Nota

    Vengono visualizzate le informazioni di installazione sull'assembly GACDemo.

Riferimenti