Impostare gli attributi di un assembly nel codice

Gli attributi dell'assembly sono valori che forniscono informazioni relative a un assembly. In genere vengono impostati in un file AssemblyInfo.cs. Tali attributi sono suddivisi nei seguenti gruppi di informazioni:

  • Attributi relativi all'identità dell'assembly
  • Attributi informativi
  • Attributi relativi al manifesto dell'assembly
  • Attributi relativi al nome sicuro

Questo articolo ha come ambito l'aggiunta di attributi di assembly dal codice. Per altre informazioni sull'aggiunta di attributi di assembly a progetti (non nel codice), vedere Impostare gli attributi di un assembly in un file di progetto.

Attributi relativi all'identità dell'assembly

Tre attributi, insieme a un nome sicuro (se disponibile), consentono di determinare l'identità di un assembly: il nome, la versione e le impostazioni cultura. Il nome completo dell'assembly è costituito da questi attributi, che risultano necessari per creare riferimenti all'assembly nel codice. È possibile usare gli attributi per impostare la versione e le impostazioni cultura di un assembly. Il valore relativo al nome viene impostato dal compilatore o da Assembly Linker (Al.exe) quando l'assembly viene creato ed è basato sul file contenente il manifesto dell'assembly.

Nella tabella seguente vengono descritti gli attributi relativi alla versione e alle impostazioni cultura.

Attributi relativi all'identità dell'assembly Descrizione
AssemblyCultureAttribute Campo elenco in cui vengono indicate le impostazioni cultura supportate dall'assembly. È possibile specificare anche l'indipendenza dalle impostazioni cultura per l'assembly, indicando che nell'assembly sono presenti le risorse per le impostazioni cultura predefinite. Nota: tutti gli assembly il cui attributo "Culture" non è impostato su Null vengono considerati dal runtime come assembly satellite. e sono soggetti alle regole di associazione degli assembly satellite. Per altre informazioni, vedere Modalità di individuazione di assembly del runtime.
AssemblyFlagsAttribute Valore che consente di impostare gli attributi relativi all'assembly, indicando ad esempio se è consentita l'esecuzione affiancata di più versioni.
AssemblyVersionAttribute Valore numerico in formato principale.secondario.build.revisione (ad esempio, 2.4.0.0). Questo valore viene usato da Common Language Runtime per eseguire operazioni di associazione in assembly con nome sicuro. Nota: se l'attributo AssemblyInformationalVersionAttribute non viene applicato a un assembly, il numero di versione specificato dall'attributo AssemblyVersionAttribute viene usato dalle proprietà Application.ProductVersion, Application.UserAppDataPath e Application.UserAppDataRegistry.

Nel seguente esempio di codice viene mostrato come applicare a un assembly gli attributi relativi alla versione e alle impostazioni cultura.

// Set version number for the assembly.
[assembly:AssemblyVersionAttribute("4.3.2.1")];
// Set culture as German.
[assembly:AssemblyCultureAttribute("de")];
// Set version number for the assembly.
[assembly:AssemblyVersionAttribute("4.3.2.1")]
// Set culture as German.
[assembly:AssemblyCultureAttribute("de")]
' Set version number for the assembly.
<Assembly:AssemblyVersionAttribute("4.3.2.1")>
' Set culture as German.
<Assembly:AssemblyCultureAttribute("de")>

Attributi informativi

Gli attributi informativi consentono di fornire informazioni aggiuntive relative alla società o al prodotto per un assembly. Nella tabella seguente vengono descritti gli attributi informativi che è possibile applicare a un assembly.

Attributo informativo Descrizione
AssemblyCompanyAttribute Valore stringa in cui viene specificato un nome di società.
AssemblyCopyrightAttribute Valore stringa in cui vengono specificate informazioni relative al copyright.
AssemblyFileVersionAttribute Valore stringa in cui viene specificato il numero di versione del file Win32. L'impostazione predefinita è solitamente la versione dell'assembly.
AssemblyInformationalVersionAttribute Valore stringa in cui vengono specificate informazioni relative alla versione non usate da Common Language Runtime, quale il numero di versione del prodotto completo. Nota: se questo attributo viene applicato a un assembly, è possibile ottenere la stringa specificata in fase di esecuzione tramite la proprietà Application.ProductVersion. La stringa viene usata anche nel percorso e nella chiave del Registro di sistema specificati dalle proprietà Application.UserAppDataPath e Application.UserAppDataRegistry.
AssemblyProductAttribute Valore stringa in cui vengono specificate informazioni relative al prodotto.
AssemblyTrademarkAttribute Valore stringa in cui vengono specificate informazioni relative al marchio registrato.

È possibile visualizzare questi attributi nella pagina delle proprietà di Windows dell'assembly o eseguirne l'override usando l'opzione del compilatore /win32res per specificare un file di risorsa Win32 personalizzato.

Attributi relativi al manifesto dell'assembly

Gli attributi relativi al manifesto dell'assembly consentono di fornire informazioni nel manifesto dell'assembly, inclusi il titolo, la descrizione, l'alias predefinito e la configurazione. Nella tabella seguente vengono descritti gli attributi relativi al manifesto dell'assembly.

Attributo relativo al manifesto dell'assembly Descrizione
AssemblyConfigurationAttribute Valore stringa che indica la configurazione dell'assembly, ad esempio finale o di debug. Questo valore non viene usato da Common Language Runtime.
AssemblyDefaultAliasAttribute Valore stringa in cui viene specificato l'alias predefinito che verrà usato dagli assembly contenenti riferimenti all'assembly corrente. Questo valore consente di fornire un nome descrittivo nel caso in cui il nome dell'assembly non sia descrittivo, ma corrisponda ad esempio a un valore GUID. È inoltre possibile usare questo valore come forma abbreviata del nome completo dell'assembly.
AssemblyDescriptionAttribute Valore stringa in cui viene specificata una breve descrizione che riassume la natura e lo scopo dell'assembly.
AssemblyTitleAttribute Valore stringa in cui viene specificato un nome descrittivo per l'assembly. È ad esempio possibile che il titolo di un assembly denominato comdlg sia Controllo della finestra di dialogo comune Microsoft.

Attributi relativi al nome sicuro

Gli attributi relativi al nome sicuro consentono di impostare un nome sicuro per un assembly. Nella tabella seguente vengono descritti gli attributi relativi al nome sicuro.

Attributo con nome sicuro Descrizione
AssemblyDelaySignAttribute Valore booleano che indica che viene usato il ritardo della firma.
AssemblyKeyFileAttribute Valore stringa che indica il nome del file contenente la chiave pubblica (se si usa il ritardo della firma) o la chiave pubblica e privata passate come parametro al costruttore di questo attributo. Si noti che il nome del file è relativo al percorso del file di output (il file con estensione exe o dll), non al percorso del file di origine.
AssemblyKeyNameAttribute Indica il contenitore di chiave contenente la coppia di chiavi passata come parametro al costruttore dell'attributo.

L'esempio di codice seguente illustra gli attributi da applicare quando si usa il ritardo della firma per creare un assembly con nome sicuro con un file di chiave pubblica denominato myKey.snk.

[assembly:AssemblyKeyFileAttribute("myKey.snk")];
[assembly:AssemblyDelaySignAttribute(true)];
[assembly:AssemblyKeyFileAttribute("myKey.snk")]
[assembly:AssemblyDelaySignAttribute(true)]
<Assembly:AssemblyKeyFileAttribute("myKey.snk")>
<Assembly:AssemblyDelaySignAttribute(True)>

Vedi anche