Assembly e Global Assembly Cache (C# e Visual Basic)

Gli assembly rappresentano l'unità fondamentale di distribuzione, controllo delle versioni, riutilizzo, ambito di attivazione e autorizzazioni di sicurezza per un'applicazione basata su .NET.Gli assembly hanno il formato di un file eseguibile (exe) o di libreria a collegamento dinamico (dll) e costituiscono i blocchi predefiniti di .NET Framework.Gli assembly forniscono a Common Language Runtime le informazioni necessarie per riconoscere le implementazioni dei tipi.Un assembly può essere considerato come una raccolta di tipi e risorse che formano un'unità logica di funzionalità e che sono creati per interagire.

Gli assembly possono contenere uno o più moduli.È ad esempio possibile pianificare i progetti di grandi dimensioni in modo tale che diversi sviluppatori lavorino su moduli distinti che, una volta raggruppati, costituiranno un singolo assembly.Per ulteriori informazioni sui moduli, vedere l'argomento Procedura: compilare un assembly su più file.

Di seguito sono riportate le caratteristiche principali degli assembly:

  • Gli assembly vengono implementati come file con estensione EXE o DLL.

  • È possibile condividere un assembly tra applicazioni inserendolo nella Global Assembly Cache.Prima di includerlo nella Global Assembly Cache, è necessario assegnare a un assembly un nome sicuro.Per ulteriori informazioni, vedere Assembly con nomi sicuri.

  • Gli assembly vengono caricati in memoria solo se sono richiesti.Se non vengono utilizzati, non vengono caricati.Consentono pertanto di gestire in modo efficiente le risorse nei progetti di grandi dimensioni.

  • È possibile ottenere informazioni su un assembly a livello di codice tramite reflection.Per ulteriori informazioni, vedere Reflection.

  • Se si desidera caricare un assembly solo per esaminarlo, utilizzare un metodo quale ReflectionOnlyLoadFrom.

Manifesto dell'assembly

All'interno di ogni assembly è presente un manifesto assembly.Il manifesto assembly è simile a un indice e contiene quanto segue:

  • L'identità dell'assembly (nome e versione).

  • Una tabella di file che descrive tutti gli altri file che appartengono all'assembly, ad esempio eventuali altri assembly creati su cui si basi il file con estensione exe o dll o i file bitmap o Readme.

  • Un elenco di riferimenti all'assembly, ovvero un elenco di tutte le dipendenze esterne, quali DLL o altri file, richiesti dall'applicazione e che possono essere creati da altri.I riferimenti all'assembly contengono riferimenti a oggetti sia privati che globali.Gli oggetti globali si trovano nella Global Assembly Cache, una zona disponibile per le altre applicazioni, simile alla directory System32.Lo spazio dei nomi Microsoft.VisualBasic è un esempio di assembly nella Global Assembly Cache.Gli oggetti privati devono trovarsi in una directory a un livello pari o inferiore alla directory nella quale è installata l'applicazione.

Poiché gli assembly contengono informazioni sul contenuto, sul controllo delle versioni e sulle dipendenze, le applicazioni create con Visual Basic e C# non si basano sui valori del Registro di sistema per funzionare in modo corretto.Gli assembly riducono i conflitti tra DLL e rendono le applicazioni più affidabili e facili da distribuire.In molti casi, è possibile installare un'applicazione basata su .NET semplicemente copiandone i file sul computer di destinazione.

Per ulteriori informazioni, vedere Manifesto dell'assembly.

Aggiunta di un riferimento a un assembly

Per utilizzare un assembly, è necessario aggiungervi un riferimento, come descritto in Procedura: aggiungere o rimuovere riferimenti utilizzando la finestra di dialogo Aggiungi riferimento.Quindi si utilizza l' istruzione Imports in Visual Basic o la direttiva using in C# per scegliere lo spazio dei nomi degli elementi che si desidera utilizzare.Dopo aver fatto riferimento a un assembly e averlo importato, tutte le classi, le proprietà, i metodi e gli altri membri accessibili dei relativi spazi dei nomi risulteranno disponibili per l'applicazione, come se il relativo codice facesse parte del file di origine.

In C# è anche possibile utilizzare due versioni dello stesso assembly in un'unica applicazione.Per ulteriori informazioni, vedere extern alias.

Creazione di un assembly

Compilare l'applicazione scegliendo Compila dal menu Compila oppure compilandola dalla riga di comando mediante l'apposito compilatore.Per informazioni dettagliate sulla compilazione di assembly dalla riga di comando, vedere Compilazione dalla riga di comando (Visual Basic) per Visual Basic e Compilazione dalla riga di comando con csc.exe per C#.

Vedere anche

Attività

Procedura: condividere un assembly con altre applicazioni (C# e Visual Basic)

Procedura: caricare e scaricare gli assembly (C# e Visual Basic)

Procedura: determinare se un file è un assembly (C# e Visual Basic)

Procedura: creare e utilizzare assembly dalla riga di comando (C# e Visual Basic)

Procedura dettagliata: incorporamento dei tipi da assembly gestiti (C# e Visual Basic)

Procedura dettagliata: incorporamento delle informazioni sui tipi da assembly di Microsoft Office (C# e Visual Basic)

Concetti

Guida per programmatori C#

Assembly Friend (C# e Visual Basic)

Altre risorse

Guida per programmatori Visual Basic

Assembly in Common Language Runtime