Ustawianie atrybutów zestawu w kodzie

Atrybuty zestawu to wartości, które zawierają informacje o zestawie. Zazwyczaj są one ustawiane w pliku AssemblyInfo.cs . Atrybuty są podzielone na następujące zestawy informacji:

  • Atrybuty tożsamości zestawu
  • Atrybuty informacyjne
  • Atrybuty manifestu zestawu
  • Atrybuty silnej nazwy

Ten artykuł ma zakres dodawania atrybutów zestawu z kodu. Aby uzyskać informacje na temat dodawania atrybutów zestawu do projektów (nie w kodzie), zobacz Ustawianie atrybutów zestawu w pliku projektu.

Atrybuty tożsamości zestawu

Trzy atrybuty, wraz z silną nazwą (jeśli ma zastosowanie), określają tożsamość zestawu: nazwę, wersję i kulturę. Te atrybuty tworzą pełną nazwę zestawu i są wymagane podczas odwoływania się do zestawu w kodzie. Możesz użyć atrybutów, aby ustawić wersję i kulturę zestawu. Kompilator lub konsolidator zestawów (Al.exe) ustawia wartość nazwy podczas tworzenia zestawu na podstawie pliku zawierającego manifest zestawu.

W poniższej tabeli opisano atrybuty wersji i kultury.

Atrybut tożsamości zestawu opis
AssemblyCultureAttribute Wyliczone pole wskazujące kulturę obsługiwaną przez zestaw. Zestaw może również określać niezależność kultury, co oznacza, że zawiera zasoby dla kultury domyślnej. Uwaga: środowisko uruchomieniowe traktuje każdy zestaw, który nie ma atrybutu kultury ustawionego na wartość null jako zestaw satelitarny. Takie zestawy podlegają regułom wiązania zestawów satelitarnych. Aby uzyskać więcej informacji, zobacz Jak środowisko uruchomieniowe lokalizuje zestawy.
AssemblyFlagsAttribute Wartość, która ustawia atrybuty zestawu, takie jak to, czy zestaw może być uruchamiany obok siebie.
AssemblyVersionAttribute Wartość liczbowa w formacie głównym.drobne.kompilacja.revision (na przykład 2.4.0.0). Środowisko uruchomieniowe języka wspólnego używa tej wartości do wykonywania operacji wiązania w zestawach o silnych nazwach. Uwaga: jeśli AssemblyInformationalVersionAttribute atrybut nie jest stosowany do zestawu, numer wersji określony przez AssemblyVersionAttribute atrybut jest używany przez Application.ProductVersionwłaściwości , Application.UserAppDataPathi Application.UserAppDataRegistry .

Poniższy przykład kodu pokazuje, jak zastosować atrybuty wersji i kultury do zestawu.

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

Atrybuty informacyjne

Możesz użyć atrybutów informacyjnych, aby podać dodatkowe informacje o firmie lub produkcie dla zestawu. W poniższej tabeli opisano atrybuty informacyjne, które można zastosować do zestawu.

Atrybut informacyjny opis
AssemblyCompanyAttribute Wartość ciągu określająca nazwę firmy.
AssemblyCopyrightAttribute Wartość ciągu określająca informacje o prawach autorskich.
AssemblyFileVersionAttribute Wartość ciągu określająca numer wersji pliku Win32. Zwykle jest to ustawienie domyślne wersji zestawu.
AssemblyInformationalVersionAttribute Wartość ciągu określająca informacje o wersji, które nie są używane przez środowisko uruchomieniowe języka wspólnego, takie jak pełny numer wersji produktu. Uwaga: jeśli ten atrybut jest stosowany do zestawu, określony ciąg można uzyskać w czasie wykonywania przy użyciu Application.ProductVersion właściwości . Ciąg jest również używany w ścieżce i kluczu rejestru udostępnianym Application.UserAppDataPath przez właściwości i Application.UserAppDataRegistry .
AssemblyProductAttribute Wartość ciągu określająca informacje o produkcie.
AssemblyTrademarkAttribute Wartość ciągu określająca informacje o znakach towarowych.

Te atrybuty mogą pojawić się na stronie Właściwości systemu Windows zestawu lub można je zastąpić przy użyciu /win32res opcji kompilatora, aby określić plik zasobu Win32.

Atrybuty manifestu zestawu

Atrybuty manifestu zestawu umożliwiają podanie informacji w manifeście zestawu, w tym tytuł, opis, alias domyślny i konfiguracja. W poniższej tabeli opisano atrybuty manifestu zestawu.

Atrybut manifestu zestawu opis
AssemblyConfigurationAttribute Wartość ciągu wskazująca konfigurację zestawu, na przykład Retail lub Debug. Środowisko uruchomieniowe nie używa tej wartości.
AssemblyDefaultAliasAttribute Wartość ciągu określająca alias domyślny, który ma być używany przez odwoływanie się do zestawów. Ta wartość zapewnia przyjazną nazwę, gdy nazwa samego zestawu nie jest przyjazna (na przykład wartość GUID). Ta wartość może być również używana jako krótka forma pełnej nazwy zestawu.
AssemblyDescriptionAttribute Wartość ciągu określająca krótki opis, który podsumowuje charakter i cel zestawu.
AssemblyTitleAttribute Wartość ciągu określająca przyjazną nazwę zestawu. Na przykład zestaw o nazwie comdlg może mieć tytuł Microsoft Common Dialog Control.

Atrybuty silnej nazwy

Możesz użyć atrybutów silnej nazwy, aby ustawić silną nazwę zestawu. W poniższej tabeli opisano atrybuty silnej nazwy.

Atrybut silnej nazwy opis
AssemblyDelaySignAttribute Wartość logiczna wskazująca, że jest używane podpisywanie opóźnione.
AssemblyKeyFileAttribute Wartość ciągu wskazująca nazwę pliku, który zawiera klucz publiczny (jeśli używasz podpisywania opóźnienia) lub zarówno klucze publiczne, jak i prywatne przekazane jako parametr konstruktora tego atrybutu. Należy pamiętać, że nazwa pliku jest względna względem ścieżki pliku wyjściowego ( .exe lub .dll), a nie ścieżki pliku źródłowego.
AssemblyKeyNameAttribute Wskazuje kontener kluczy, który zawiera parę kluczy przekazaną jako parametr do konstruktora tego atrybutu.

Poniższy przykład kodu przedstawia atrybuty do zastosowania podczas używania podpisywania opóźnienia w celu utworzenia zestawu o silnej nazwie z plikiem klucza publicznego o nazwie myKey.snk.

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

Zobacz też