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