Nastavení atributů sestavení v kódu

Atributy sestavení jsou hodnoty, které poskytují informace o sestavení. Obvykle jsou nastavené v souboru AssemblyInfo.cs . Atributy jsou rozděleny do následujících sad informací:

  • Atributy identity sestavení
  • Informační atributy
  • Atributy manifestu sestavení
  • Atributy silného názvu

Tento článek má obor přidání atributů sestavení z kódu. Informace o přidávání atributů sestavení do projektů (ne v kódu) naleznete v tématu Nastavení atributů sestavení v souboru projektu.

Atributy identity sestavení

Tři atributy společně se silným názvem (pokud je k dispozici) určují identitu sestavení: název, verze a jazyková verze. Tyto atributy tvoří úplný název sestavení a jsou vyžadovány při odkazování na sestavení v kódu. Pomocí atributů můžete nastavit verzi a jazykovou verzi sestavení. Kompilátor nebo Assembly Linker (Al.exe) nastaví hodnotu názvu při vytvoření sestavení na základě souboru obsahujícího manifest sestavení.

Následující tabulka popisuje atributy verze a jazykové verze.

Atribut identity sestavení Popis
AssemblyCultureAttribute Výčtové pole označující jazykovou verzi, kterou sestavení podporuje. Sestavení může také určit nezávislost jazykové verze, která označuje, že obsahuje prostředky pro výchozí jazykovou verzi. Poznámka: Modul runtime považuje za jakékoli sestavení, které nemá atribut jazykové verze nastavený na hodnotu null jako satelitní sestavení. Tato sestavení podléhají pravidlům vazby satelitního sestavení. Další informace naleznete v tématu Jak modul runtime vyhledá sestavení.
AssemblyFlagsAttribute Hodnota, která nastavuje atributy sestavení, například zda lze sestavení spustit vedle sebe.
AssemblyVersionAttribute Číselná hodnota ve formátu hlavní.menší.sestavení.revize (například 2.4.0.0). Modul CLR (Common Language Runtime) používá tuto hodnotu k provádění operací vazby v sestaveních se silným názvem. Poznámka: Pokud AssemblyInformationalVersionAttribute atribut není použit na sestavení, číslo verze určené AssemblyVersionAttribute atributem je používána Application.ProductVersion, Application.UserAppDataPatha Application.UserAppDataRegistry vlastnosti.

Následující příklad kódu ukazuje, jak použít atributy verze a jazykové verze sestavení.

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

Informační atributy

Pomocí informačních atributů můžete poskytnout další informace o společnosti nebo produktu pro sestavení. Následující tabulka popisuje informační atributy, které můžete použít na sestavení.

Informační atribut Popis
AssemblyCompanyAttribute Řetězcová hodnota určující název společnosti
AssemblyCopyrightAttribute Řetězcová hodnota určující informace o autorských právech
AssemblyFileVersionAttribute Řetězcová hodnota určující číslo verze souboru Win32. Toto nastavení se obvykle používá jako výchozí verze sestavení.
AssemblyInformationalVersionAttribute Řetězcová hodnota určující informace o verzi, které modul CLR (Common Language Runtime) nepoužívá, například celé číslo verze produktu. Poznámka: Pokud je tento atribut použit na sestavení, řetězec, který určuje lze získat za běhu pomocí Application.ProductVersion vlastnosti. Řetězec se také používá v cestě a klíči registru poskytovaném vlastnostmi Application.UserAppDataPath a Application.UserAppDataRegistry vlastnostmi.
AssemblyProductAttribute Řetězcová hodnota určující informace o produktu
AssemblyTrademarkAttribute Řetězcová hodnota určující informace o ochranné známce

Tyto atributy se mohou zobrazit na stránce Vlastnosti systému Windows sestavení nebo lze je přepsat pomocí možnosti kompilátoru /win32res k zadání souboru prostředku Win32.

Atributy manifestu sestavení

Pomocí atributů manifestu sestavení můžete poskytnout informace v manifestu sestavení, včetně názvu, popisu, výchozího aliasu a konfigurace. Následující tabulka popisuje atributy manifestu sestavení.

Atribut manifestu sestavení Popis
AssemblyConfigurationAttribute Řetězcová hodnota označující konfiguraci sestavení, například Retail nebo Debug. Modul runtime tuto hodnotu nepoužívá.
AssemblyDefaultAliasAttribute Řetězcová hodnota určující výchozí alias, který se má použít odkazováním na sestavení. Tato hodnota poskytuje popisný název, pokud název samotného sestavení není popisný (například hodnota GUID). Tuto hodnotu lze také použít jako krátkou formu úplného názvu sestavení.
AssemblyDescriptionAttribute Řetězcová hodnota určující krátký popis, který shrnuje povahu a účel sestavení.
AssemblyTitleAttribute Řetězcová hodnota určující popisný název sestavení. Například sestavení s názvem comdlg může mít název Microsoft Common Dialog Control.

Atributy silného názvu

K nastavení silného názvu sestavení můžete použít atributy silného názvu. Následující tabulka popisuje atributy silného názvu.

Atribut silného názvu Popis
AssemblyDelaySignAttribute Logická hodnota označující, že se používá podepisování zpoždění.
AssemblyKeyFileAttribute Řetězcová hodnota označující název souboru, který obsahuje buď veřejný klíč (pokud používáte podepisování zpoždění), nebo veřejné i privátní klíče předané jako parametr konstruktoru tohoto atributu. Všimněte si, že název souboru je relativní vzhledem k cestě k výstupnímu souboru ( .exe nebo .dll), nikoli ke zdrojové cestě k souboru.
AssemblyKeyNameAttribute Označuje kontejner klíčů, který obsahuje pár klíčů předaný jako parametr konstruktoru tohoto atributu.

Následující příklad kódu ukazuje atributy, které se použijí při použití podepisování zpoždění k vytvoření sestavení se silným názvem se souborem veřejného klíče s názvem myKey.snk.

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

Viz také