Festlegen von Assemblyattributen im Code

Assemblyattribute sind Werte, die Informationen zu einer Assembly bereitstellen. Sie werden in der Regel in einer AssemblyInfo.cs-Datei festgelegt. Die Attribute sind in die folgenden Gruppen von Informationen unterteilt:

  • Attribute für Assemblyidentitäten
  • Informationsattribute
  • Attribute für Assemblymanifeste.
  • Attribute für starke Namen

Dieser Artikel befasst sich mit dem Hinzufügen von Assemblyattributen aus dem Code. Informationen zum Hinzufügen von Assemblyattributen zu Projekten (nicht im Code) finden Sie unter Festlegen von Assemblyattributen in einer Projektdatei.

Attribute für Assemblyidentitäten

Drei Attribute bestimmen zusammen mit einem starken Namen (falls zutreffend) die Identität einer Assembly: "name", "version" und "culture". Diese Attribute bilden den vollständigen Namen der Assembly und sind erforderlich, wenn im Code auf die Assembly verwiesen wird. Mit Attributen können die Version und Kultur einer Assembly festgelegt werden. Der Compiler oder der Assembly Linker (Al.exe) legt beim Erstellen der Assembly den Namenswert auf Grundlage der Datei fest, die das Assemblymanifest enthält.

In der folgenden Tabelle werden das version- und das culture-Attribut beschrieben.

Attribut für Assemblyidentität Beschreibung
AssemblyCultureAttribute Ein aufgelistetes Feld, das die von der Assembly unterstützte Kultur angibt. Eine Assembly kann auch eine Kulturunabhängigkeit angeben. In diesem Fall enthält sie die Ressourcen für die Standardkultur. Hinweis: Die Runtime behandelt jede Assembly als Satellitenassembly, für die das culture-Attribut nicht auf NULL festgelegt ist. Solche Assemblys unterliegen den Bindungsregeln für Satellitenassemblys. Weitere Informationen finden Sie unter So sucht Common Language Runtime nach Assemblys.
AssemblyFlagsAttribute Ein Wert, der Assemblyattribute festlegt, etwa ob die Assembly parallel ausgeführt werden kann.
AssemblyVersionAttribute Ein numerischer Wert mit dem Format Haupt.Neben.Build.Revision (z. B. 2.4.0.0). Common Language Runtime verwendet diesen Wert zum Durchführen von Bindungsvorgängen in Assemblys mit der Eigenschaft "Starker Name". Hinweis: Wenn das AssemblyInformationalVersionAttribute-Attribut nicht auf eine Assembly angewendet wird, wird die Versionsnummer, die vom AssemblyVersionAttribute-Attribut angegeben wird, von den Eigenschaften Application.ProductVersion, Application.UserAppDataPath und Application.UserAppDataRegistry verwendet.

Im folgenden Codebeispiel wird veranschaulicht, wie das version- und das culture-Attribut auf eine Assembly angewendet werden.

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

Informationsattribute

Mit Informationsattributen können Sie zusätzliche Firmen- oder Produktinformationen für eine Assembly bereitstellen. Die folgende Tabelle beschreibt die verschiedenen Informationsattribute, die auf eine Assembly angewendet werden können.

Informationsattribut Beschreibung
AssemblyCompanyAttribute Ein Zeichenfolgenwert, der einen Firmennamen angibt.
AssemblyCopyrightAttribute Ein Zeichenfolgenwert, der Copyright-Informationen angibt.
AssemblyFileVersionAttribute Ein Zeichenfolgenwert, der die Win32-Dateiversionsnummer angibt. Dies ist normalerweise standardmäßig die Assemblyversion.
AssemblyInformationalVersionAttribute Ein Zeichenfolgenwert, der Versionsinformationen angibt, die zur Laufzeit nicht verwendet werden (zum Beispiel die vollständige Produktversionsnummer). Hinweis: Wenn dieses Attribut auf eine Assembly angewendet wird, kann die davon angegebene Zeichenfolge zur Runtime mithilfe der Application.ProductVersion-Eigenschaft abgerufen werden. Diese Zeichenfolge wird auch im von den Eigenschaften Application.UserAppDataPath und Application.UserAppDataRegistry bereitgestellten Pfad und Registrierungsschlüssel verwendet.
AssemblyProductAttribute Ein Zeichenfolgenwert, der Produktinformationen angibt.
AssemblyTrademarkAttribute Ein Zeichenfolgenwert, der Markeninformationen angibt.

Diese Attribute können auf der Windows-Eigenschaftenseite der Assembly angezeigt werden, oder sie können mithilfe der Compileroption /win32res überschrieben werden, um Ihre Win32-Ressourcendatei anzugeben.

Attribute für Assemblymanifeste.

Mit Attributen für Assemblymanifeste können Informationen im Assemblymanifest angegeben werden, einschließlich Titel, Beschreibung, Standardalias und Konfiguration. In der folgenden Tabelle werden die Attribute für Assemblymanifeste beschrieben.

Attribut für Assemblymanifeste Beschreibung
AssemblyConfigurationAttribute Ein Zeichenfolgenwert, der die Assemblykonfiguration angibt, beispielsweise "Einzelhandel" oder "Debuggen". Dieser Wert wird zur Laufzeit nicht verwendet.
AssemblyDefaultAliasAttribute Ein Zeichenfolgenwert, der einen Standardalias angibt, der von Assemblys mit einem Verweis verwendet werden soll. Dieser Wert stellt einen Anzeigenamen zur Verfügung, wenn der eigentliche Name der Assembly nicht angezeigt wird (zum Beispiel ein GUID-Wert). Dieser Wert kann auch als Kurzform des vollen Assemblynamens verwendet werden.
AssemblyDescriptionAttribute Ein Zeichenfolgenwert, der eine kurze Beschreibung angibt, die Natur und Zweck der Assembly zusammenfasst.
AssemblyTitleAttribute Ein Zeichenfolgenwert, der einen Anzeigenamen für die Assembly angibt. Beispielsweise kann eine Assembly mit dem Namen comdlg den Titel „Microsoft Common Dialog Control“ (Allgemeines Microsoft-Dialogsteuerelement) haben.

Attribute für starke Namen

Sie können Attribute für starke Namen verwenden, um einen starken Namen für eine Assembly festzulegen. In der folgenden Tabelle werden die Attribute für starke Namen beschrieben.

Attribut für starke Namen Beschreibung
AssemblyDelaySignAttribute Ein boolescher Wert, der angibt, dass die verzögerte Signierung verwendet wird
AssemblyKeyFileAttribute Ein Zeichenfolgenwert, der den Namen der Datei angibt, die entweder den öffentlichen Schlüssel (bei verzögerter Signierung) oder öffentliche und private Schlüssel enthält, die an den Konstruktor dieses Attributs als Parameter übergeben werden. Beachten Sie, dass der Dateiname relativ zum Pfad der Ausgabedatei ist (die EXE- oder DLL-Datei) und nicht zum Pfad der Quelldatei.
AssemblyKeyNameAttribute Zeigt den Schlüsselcontainer an, der das Schlüsselpaar enthält, das an den Konstruktor dieses Attributs als Parameter übergeben wurde.

Das folgende Codebeispiel zeigt die Attribute, die angewendet werden, wenn mithilfe der verzögerten Signierung eine Assembly mit starkem Namen mit einer Datei des öffentlichen Schlüssels myKey.snk erstellt wird.

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

Siehe auch