Condividi tramite


Attributi globali in Visual Basic

Aggiornamento: novembre 2007

La maggior parte degli attributi è associata a specifici elementi di linguaggio, quali classi o metodi. Vi sono tuttavia anche attributi globali, ovvero applicabili a un intero assembly o modulo.

Molti degli attributi possono essere impostati nell'ambiente di sviluppo integrato (IDE, Integrated Development Environment) di Visual Studio tramite la Finestra di dialogo Informazioni assembly. Per ulteriori informazioni, vedere Gestione delle proprietà delle applicazioni e Gestione delle firme di assembly e manifesti.

Attributi di un assembly

Per specificare gli attributi a livello di assembly è possibile utilizzare la sintassi seguente:

<Assembly: Attribute1, Assembly: Attribute2..., Assembly: AttributeN>

Per specificare gli attributi a livello di modulo è possibile utilizzare la sintassi seguente:

<Module: Attribute1, Module: Attribute2..., Module: AttributeN>

Gli attributi globali vengono aggiunti nel codice sorgente dopo eventuali istruzioni di primo livello, quali Option Explicit e Imports, ma prima di eventuali dichiarazioni di tipo o di spazio dei nomi. Gli attributi globali possono essere presenti in più file di origine di un progetto. Tuttavia, in genere si trovano nel file AssemblyInfo.vb creato automaticamente con i progetti Visual Basic.

Gli attributi dell'assembly sono valori che forniscono informazioni relative a un assembly. e sono suddivisi nelle categorie seguenti:

  • Attributi relativi all'identità dell'assembly

  • Attributi informativi

  • Attributi relativi al manifesto dell'assembly

  • Attributi relativi al nome sicuro

Attributi relativi all'identità dell'assembly

L'identità di un assembly è determinata da tre attributi e, se disponibile, da un nome sicuro. Questi attributi, ovvero nome, versione e impostazioni cultura, Il nome completo dell'assembly è costituito da questi attributi che sono necessari quando si creano riferimenti all'assembly nel codice. Tramite gli attributi è possibile impostare la versione e le impostazioni cultura di un assembly. Il valore relativo al nome viene tuttavia impostato dal compilatore, dall'ambiente di sviluppo integrato di Visual Studio nella Finestra di dialogo Informazioni assembly o da Assembly Linker (Al.exe) durante la creazione dell'assembly, in base al file che contiene il manifesto dell'assembly. L'attributo AssemblyFlagsAttribute specifica se è possibile la coesistenza di più copie dell'assembly.

Nella tabella che segue sono riportati gli attributi relativi all'identità.

Attributo

Funzione

AssemblyName

Descrive in modo completo l'identità di un assembly.

AssemblyVersionAttribute

Specifica la versione dell'assembly.

AssemblyCultureAttribute

Specifica le impostazioni cultura supportate dall'assembly.

AssemblyFlagsAttribute

Specifica se l'assembly supporta l'esecuzione side-by-side sullo stesso computer, nello stesso processo o nello stesso dominio dell'applicazione.

Utilizzando il codice seguente è possibile applicare a un assembly gli attributi relativi alla versione e alle impostazioni cultura:

'Set version number for assembly.
<Assembly: Reflection.AssemblyVersionAttribute("4.3.2.1")> 
'Set culture as German.
<Assembly: Reflection.AssemblyCultureAttribute("de")> 

Attributi informativi

Gli attributi informativi consentono di fornire informazioni aggiuntive relative alla società o al prodotto per un assembly. Nella tabella che segue sono riportati gli attributi informativi definiti nello spazio dei nomi System.Reflection.

Attributo

Funzione

AssemblyProductAttribute

Definisce un attributo personalizzato che specifica il nome del prodotto per un manifesto dell'assembly.

AssemblyTrademarkAttribute

Definisce un attributo personalizzato che specifica il marchio per un manifesto dell'assembly.

AssemblyInformationalVersionAttribute

Definisce un attributo personalizzato che specifica la versione informativa per un manifesto dell'assembly.

AssemblyCompanyAttribute

Definisce un attributo personalizzato che specifica il nome della società per un manifesto dell'assembly.

AssemblyCopyrightAttribute

Definisce un attributo personalizzato che specifica il copyright per un manifesto dell'assembly.

AssemblyFileVersionAttribute

Indica al compilatore di utilizzare un numero di versione specifico per la risorsa di versione del file Win32.

CLSCompliantAttribute

Indica se l'assembly è compatibile con le specifiche CLS.

Attributi relativi al manifesto dell'assembly

È possibile utilizzare gli attributi del manifesto dell'assembly per fornire le informazioni nel manifesto dell'assembly, inclusi titolo, descrizione, alias predefinito e configurazione. Nella tabella che segue sono riportati gli attributi relativi al manifesto dell'assembly definiti nello spazio dei nomi System.Reflection.

Attributo

Funzione

AssemblyTitleAttribute

Definisce un attributo personalizzato che specifica il titolo dell'assembly per un manifesto dell'assembly.

AssemblyDescriptionAttribute

Definisce un attributo personalizzato che specifica la descrizione dell'assembly per un manifesto dell'assembly.

AssemblyConfigurationAttribute

Definisce un attributo personalizzato che specifica la configurazione dell'assembly, ad esempio finale o debug, per un manifesto dell'assembly.

AssemblyDefaultAliasAttribute

Viene definito un alias predefinito descrittivo per un manifesto dell'assembly.

Attributi relativi al nome sicuro

I nomi sicuri sono identificativi univoci che consentono di proteggere l'identità e l'integrità di un assembly. È possibile firmare un assembly dall'ambiente di sviluppo integrato di Visual Studio mediante la Pagina Firma, Progettazione progetti. Per ulteriori informazioni, vedere Gestione delle firme di assembly e manifesti.

In alternativa, è possibile utilizzare gli attributi relativi al nome sicuro per impostare un nome sicuro per un assembly. Nella tabella che segue sono riportati gli attributi relativi al nome sicuro definiti nello spazio dei nomi System.Reflection.

Attributo

Funzione

AssemblyDelaySignAttribute

Valore booleano che consente di specificare se si desidera riservare spazio nel file eseguibile per la firma con nome sicuro, ma rimanda la firma a un momento successivo. Per ulteriori informazioni, vedere Ritardo della firma di un assembly.

AssemblyKeyFileAttribute

Viene indicato il file che contiene una chiave. La posizione di KeyFile deve essere relativa alla directory di output del progetto, ovvero %Project Directory%\obj\<configurazione>. Se ad esempio il KeyFile si trova nella directory del progetto, è necessario specificare l'attributo AssemblyKeyFile come:

[assembly: AssemblyKeyFile("..\\..\\mykey.snk")]

AssemblyKeyNameAttribute

Fa riferimento a una chiave che è stata installata nel provider del servizio di crittografia (CSP, Crypto Service Provider) del computer. Perché il file venga firmato è necessario specificare una chiave.

Se si specifica sia il valore di KeyFile sia il valore di KeyName, le chiavi verranno utilizzate nel modo seguente:

  • Se KeyName è presente in CSP, verrà utilizzata questa chiave.

  • Se KeyName non esiste e KeyFile esiste, la chiave di KeyFile verrà installata in CSP e utilizzata.

  • Per ulteriori informazioni, vedere Considerazioni sulla protezione degli assembly.

Firma di assembly

È possibile firmare un assembly in due modi diversi ma complementari: con un nome sicuro oppure con una firma. Per firmare, è possibile utilizzare la Pagina Firma, Progettazione progetti dell'ambiente di sviluppo integrato di Visual Studio o lo Strumento firma digitale (Signcode.exe). La firma di un assembly con un nome sicuro comporta l'aggiunta di una crittografia a chiave pubblica al file che contiene il manifesto dell'assembly. La firma con nome sicuro garantisce l'univocità del nome, ne impedisce l'utilizzo fraudolento e fornisce un'identità al chiamante quando un riferimento viene risolto. Per ulteriori informazioni, vedere Gestione delle firme di assembly e manifesti e Procedura: firmare un assembly con un nome sicuro.

Per firmare un assembly con un nome sicuro

  1. Utilizzare lo Strumento Nome sicuro (Sn.exe) per generare un file di chiave contenente una coppia di chiavi.

  2. Aggiungere attributi del nome sicuro al file AssemblyInfo.vb creato automaticamente con i progetti di Visual Basic. Per modificare il file, fare doppio clic sul nome file in Esplora soluzioni.

    Nell'esempio che segue viene utilizzata la firma ritardata per creare un assembly con nome sicuro con un file di chiave pubblica denominato myKey.snk.

    <Assembly: Reflection.AssemblyKeyFile("myKey.snk")> 
    <Assembly: Reflection.AssemblyDelaySign(True)> 
    
    Nota:

    Se non si sta creando un assembly, ad esempio se si effettua la compilazione dalla riga di comando utilizzando l'opzione /target:module, gli attributi a livello di assembly vengono ignorati.

Vedere anche

Attività

Procedura: definire attributi personalizzati

Procedura: firmare un assembly con un nome sicuro

Concetti

Applicazione di attributi

Considerazioni sulla protezione degli assembly

Riferimenti

Strumento Nome sicuro (Sn.exe)

Strumento firma digitale (Signcode.exe)

Pagina Firma, Progettazione progetti

Finestra di dialogo Informazioni assembly

Altre risorse

Attributi personalizzati in Visual Basic

Gestione delle proprietà delle applicazioni

Gestione delle firme di assembly e manifesti