Condividi tramite


Impostare gli attributi dell'assembly nel codice

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

  • Attributi di identità dell'assembly
  • Attributi informativi
  • Attributi del manifesto di assemblaggio
  • Attributi di nome forte

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

Attributi di identità dell'assembly

Tre attributi, insieme a un nome sicuro (se applicabile), determinano l'identità di un assembly: nome, versione e cultura. Questi attributi formano il nome completo dell'assembly e sono necessari quando si fa riferimento all'assembly nel codice. È possibile usare gli attributi per impostare la versione e la cultura di un assembly. Il compilatore o l'Assembly Linker (Al.exe) imposta il valore del nome quando l'assembly viene creato, in base al file contenente il Manifest dell'assembly.

Nella tabella seguente vengono descritti gli attributi di versione e cultura.

Attributo Identità dell'assembly Descrizione
AssemblyCultureAttribute Campo enumerato che indica la cultura supportata dall'assembly. Un assembly può anche specificare l'indipendenza della cultura, a indicare che contiene le risorse per la cultura predefinita. Nota: Il runtime considera qualsiasi assembly che non ha l'attributo cultura impostato su null come assembly satellite. Tali assiemi sono soggetti a regole di collegamento di assiemi satellite. Per altre informazioni, vedere Come il runtime individua gli assembly.
AssemblyFlagsAttribute Valore che imposta gli attributi dell'assembly, ad esempio se l'assembly può essere eseguito side-by-side.
AssemblyVersionAttribute Valore numerico nel formato principale.minore.compilazione.revisione (ad esempio, 2.4.0.0). Common Language Runtime utilizza questo valore per eseguire operazioni di associazione in assembly con nome forte. Nota: Se l'attributo AssemblyInformationalVersionAttribute non viene applicato a un assembly, il numero di versione specificato dall'attributo AssemblyVersionAttribute viene utilizzato dalle Application.ProductVersionproprietà , Application.UserAppDataPathe Application.UserAppDataRegistry .

Nell'esempio di codice seguente viene illustrato come applicare gli attributi di versione e cultura a un assembly.

// 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

È possibile utilizzare attributi informativi per fornire informazioni aziendali o sui prodotti aggiuntive per un assemblaggio. Nella tabella seguente vengono descritti gli attributi informativi che è possibile applicare a un assembly.

Attributo informativo Descrizione
AssemblyCompanyAttribute Valore stringa che specifica un nome della società.
AssemblyCopyrightAttribute Valore stringa che specifica le informazioni sul copyright.
AssemblyFileVersionAttribute Valore stringa che specifica il numero di versione del file Win32. Questa impostazione predefinita è in genere la versione dell'assembly.
AssemblyInformationalVersionAttribute Valore stringa che specifica le informazioni sulla versione non usate da Common Language Runtime, ad esempio un numero di versione completo del prodotto. Nota: Se questo attributo viene applicato a un assembly, la stringa specificata può essere ottenuta in fase di esecuzione usando la Application.ProductVersion proprietà . La stringa viene usata anche nel percorso e nella chiave del Registro di sistema, fornite dalle proprietà Application.UserAppDataPath e Application.UserAppDataRegistry.
AssemblyProductAttribute Valore stringa che specifica le informazioni sul prodotto.
AssemblyTrademarkAttribute Valore stringa che specifica le informazioni sul marchio.

Questi attributi possono essere visualizzati nella pagina Proprietà di Windows dell'assembly oppure possono essere sottoposti a override usando l'opzione del compilatore /win32res per specificare il file di risorse Win32.

Attributi del manifesto di assemblaggio

È possibile usare gli attributi del manifesto dell'assembly per fornire informazioni nel manifesto dell'assembly, tra cui titolo, descrizione, alias predefinito e configurazione. Nella tabella seguente vengono descritti gli attributi del manifesto di assembly.

Attributo manifesto dell'assembly Descrizione
AssemblyConfigurationAttribute Valore stringa che indica la configurazione dell'assembly, ad esempio Retail o Debug. Il runtime non usa questo valore.
AssemblyDefaultAliasAttribute Valore stringa che specifica un alias predefinito da usare facendo riferimento agli assembly. Questo valore fornisce un nome descrittivo quando il nome stesso dell'assembly non è amichevole, come nel caso di un valore GUID. Questo valore può essere usato anche come forma breve del nome completo dell'assembly.
AssemblyDescriptionAttribute Valore di stringa che specifica una breve descrizione che riassume la natura e lo scopo dell'assembly.
AssemblyTitleAttribute Valore di stringa che specifica un nome descrittivo per l'assembly. Ad esempio, un assembly denominato comdlg potrebbe avere il titolo Microsoft Common Dialog Control.

Attributi di nome forte

È possibile usare attributi con nome sicuro per impostare un nome sicuro per un assembly. Nella tabella seguente vengono descritti gli attributi a nome forte.

Attributo nome sicuro Descrizione
AssemblyDelaySignAttribute Valore booleano che indica che viene utilizzata la firma ritardata.
AssemblyKeyFileAttribute Valore stringa che indica il nome del file che contiene la chiave pubblica (se si usa la firma ritardata) o sia le chiavi pubbliche che private passate come parametro al costruttore di questo attributo. Si noti che il nome del file è relativo al percorso del file di output (il .exe o .dll), non al percorso del file di origine.
AssemblyKeyNameAttribute Indica il contenitore di chiavi che contiene la coppia di chiavi passata come parametro al costruttore di questo attributo.

Nell'esempio di codice seguente vengono illustrati gli attributi da applicare quando si usa la firma ritardata 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)>

Vedere anche