Share via


Assembly Linker-Tool (Al.exe)

Das Assembly Linker-Tool generiert eine Datei mit einem Assemblymanifest aus einer oder mehreren Dateien, bei denen es sich um Module oder Ressourcendateien handelt. Ein Modul ist eine MSIL-Datei (Microsoft Intermediate Language-Datei), die nicht über ein Assemblymanifest verfügt.

al sources options

Parameter

Sie können eine oder mehrere der folgenden sources angeben.

Quelle Beschreibung

file[,target]

Kopiert den Inhalt von file (ein Modul) in den als target angegebenen Dateinamen. Nach dem Kopieren kompiliert Al.exe target in eine Assembly.

/embed[resource]:file[,name[,private]]

Bettet eine durch file angegebene Ressource in das Abbild ein, das das Assemblymanifest enthält; Al.exe kopiert den Inhalt von file in das übertragbare ausführbare Abbild (PE, Portable Executable).

Der name-Parameter ist ein interner Bezeichner für die Ressource. Standardmäßig sind Ressourcen in der Assembly öffentlich (d. h. für andere Assemblys sichtbar). Durch Angeben von private können Sie verhindern, dass die Ressource für andere Assemblys sichtbar ist.

Wenn es sich bei file um eine .NET Framework-Ressourcendatei handelt, die beispielsweise durch den Resource File Generator (Resgen.exe) oder in der Entwicklungsumgebung erstellt wurde, ist der Zugriff mit Membern im System.Resources-Namespace möglich. Weitere Informationen finden Sie unter System.Resources.ResourceManager-Klasse. Verwenden Sie für alle anderen Ressourcen die GetManifestResource*-Methoden in der System.Reflection.Assembly-Klasse, um zur Laufzeit auf die Ressource zuzugreifen.

Wenn nur Ressourcendateien an Al.exe übergeben werden, handelt es sich bei der Ausgabedatei um eine Satellitenressourcenassembly.

/link[resource]:file[,name[,target[,private]]]

Verknüpft eine Ressourcendatei mit einer Assembly. Die durch file angegebene Ressource wird Teil der Assembly. Die Datei wird nicht kopiert. Der file-Parameter kann ein beliebiges Dateiformat ausweisen. Beispielsweise können Sie als file-Parameter eine systemeigene DLL angeben. Dadurch wird die systemeigene DLL Teil der Assembly, sodass sie im globalen Assemblycache installiert und aus verwaltetem Code in der Assembly darauf zugegriffen werden kann. Eine andere Möglichkeit besteht darin, die /linkresource-Compileroption zu verwenden. Weitere Informationen finden Sie unter /linkresource (Mit .NET Framework-Ressource verknüpfen) (C#-Compileroptionen).

Der name-Parameter ist ein interner Bezeichner für die Ressource. Der target-Parameter gibt einen Pfad und Dateinamen an, in die file von Al.exe kopiert wird. Nach dem Kopieren kompiliert Al.exe target in eine Assembly. Standardmäßig sind Ressourcen in der Assembly öffentlich (d. h. für andere Assemblys sichtbar). Durch Angeben von private können Sie verhindern, dass die Ressource für andere Assemblys sichtbar ist.

Wenn es sich bei file um eine .NET Framework-Ressourcendatei handelt, die beispielsweise durch den Resource File Generator (Resgen.exe) oder in der Entwicklungsumgebung erstellt wurde, ist der Zugriff darauf mit Membern im System.Resources-Namespace möglich. Weitere Informationen finden Sie unter System.Resources.ResourceManager. Für alle anderen Ressourcen verwenden Sie die GetManifestResource*-Methoden in der System.Reflection.Assembly-Klasse, um die Ressource zur Laufzeit aufzurufen.

Wenn nur Ressourcendateien an Al.exe übergeben werden, handelt es sich bei der Ausgabedatei um eine Satellitenressourcenassembly.

Sie können die folgenden Optionen (options) angeben. Die Angabe von /out ist obligatorisch.

Option Beschreibung

/algid:id

Legt einen Algorithmus zum Hashen aller Dateien in einer Mehrfachdateiassembly mit Ausnahme der Datei, die das Assemblymanifest enthält, fest. Der standardmäßige Algorithmus lautet CALG_SHA1. Informationen zu anderen Algorithmen finden Sie unter ALG_ID in der Platform SDK-Dokumentation. Für das erste Release von .NET Framework sind nur CALG_SHA1 und CALG_MD5 gültig.

Die Hashwerte werden in der Dateitabelle des Assemblymanifests gespeichert. Bei der Installation und beim Laden werden die Dateien der Assembly anhand ihrer Hashwerte überprüft.

Sie können diese Option auch als benutzerdefiniertes Attribut (System.Reflection.AssemblyAlgorithmIdAttribute) im Quellcode für ein beliebiges Modul angeben.

/base[address]:addr

Legt die Adresse fest, an der eine DLL zur Laufzeit auf den Computer des Benutzers geladen wird. Das Laden von Anwendungen kann beschleunigt werden, wenn nicht das Betriebssystem die DLLs im Prozessbereich verschiebt, sondern die Basisadresse der DLLs angegeben wird.

/bugreport:filename

Erstellt eine Datei (filename) mit Daten zum Erfassen von Bugs.

/comp[any]:text

Legt eine Zeichenfolge für das Feld Firma in der Assembly fest. Platzieren Sie die Zeichenfolge zwischen doppelte Anführungszeichen (" "), wenn text ein Leerzeichen enthält. Diese Zeichenfolge ist ein benutzerdefiniertes Attribut in der Assembly und steht für die Ansicht mit Reflektion zur Verfügung.

Wenn Sie /win32res nicht angeben, wird text in Microsoft Windows Explorer als die Company-Eigenschaft für die Datei angezeigt. Wenn Sie /win32res angeben, erscheinen die Firmendaten in der angegebenen Ressourcendatei als die Company-Eigenschaft in Windows Explorer.

Wenn text eine leere Zeichenfolge ("") ist, erscheint die Win32-Ressource Company als einzelnes Leerzeichen.

Bei Angabe von /win32res hat /company keine Auswirkung auf die Win32-Ressourcendaten.

Sie können diese Option auch als benutzerdefiniertes Attribut (System.Reflection.AssemblyCompanyAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/config[uration]:text

Legt eine Zeichenfolge für das Feld Konfiguration in der Assembly fest. Platzieren Sie die Zeichenfolge zwischen doppelte Anführungszeichen (" "), wenn text ein Leerzeichen enthält. Diese Zeichenfolge ist ein benutzerdefiniertes Attribut in der Assembly und steht für die Ansicht mit Reflektion zur Verfügung.

Wenn text eine leere Zeichenfolge ist, erscheint die Win32-Ressource Konfiguration als einzelnes Leerzeichen.

Sie können diese Option auch als benutzerdefiniertes Attribut (System.Reflection.AssemblyConfigurationAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/copy[right]:text

Legt eine Zeichenfolge für das Feld Copyright in der Assembly fest. Platzieren Sie die Zeichenfolge zwischen doppelte Anführungszeichen (" "), wenn text ein Leerzeichen enthält. Diese Zeichenfolge ist ein benutzerdefiniertes Attribut in der Assembly und steht für die Ansicht mit Reflektion zur Verfügung.

Wenn Sie /win32res nicht angeben, wird /copyright in Windows Explorer als die Win32-Ressource Copyright angezeigt.

Wenn text eine leere Zeichenfolge ist, erscheint die Win32-Ressource Copyright als einzelnes Leerzeichen.

Bei Angabe von /win32res hat /copyright keine Auswirkung auf die Win32-Ressourcendaten.

Sie können diese Option auch als benutzerdefiniertes Attribut (System.Reflection.AssemblyCopyrightAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/c[ulture]:text

Legt die Kulturzeichenfolge fest, die mit der Assembly zu verknüpfen ist. Gültige Werte für Kulturen sind im Request for Comments-Dokument (RFC) 1766 mit dem Titel "Tags for the Identification of Languages" (nur auf Englisch verfügbar) definiert.

Platzieren Sie die Zeichenfolge zwischen doppelte Anführungszeichen (" "), wenn text ein Leerzeichen enthält. Es gibt keine standardmäßige Kulturzeichenfolge. Die Zeichenfolge ist für die Ansicht mit Reflektion verfügbar.

Informationen über gültige text-Zeichenfolgen finden Sie unter CultureInfo.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyCultureAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/delay[sign][+|-]

Legt fest, ob die Assembly vollständig oder teilweise signiert wird. Verwenden Sie /delaysign-, wenn die Assembly vollständig signiert werden soll. Verwenden Sie /delaysign+, wenn Sie nur den öffentlichen Schlüssel in die Assembly einfügen möchten.

Wenn Sie eine vollständig signierte Assembly anfordern, wandelt Al.exe die Datei mit dem Manifest (Assemblymetadaten) in einen Hash um und signiert diesen mit dem privaten Schlüssel. Die erhaltene digitale Signatur wird in der Datei mit dem Manifest gespeichert. Wenn die Signatur einer Assembly verzögert wird, berechnet und speichert Al.exe die Signatur nicht, sondern reserviert lediglich einen Bereich in der Datei, damit die Signatur zu einem späteren Zeitpunkt hinzugefügt werden kann.

Die Standardeinstellung ist /delaysign-.

Die Option /delaysign ist nur dann wirksam, wenn sie zusammen mit /keyfile oder /keyname verwendet wird.

Mit /delaysign+ können Tester die Assembly z. B. im globalen Cache ablegen. Nach dem Testen können Sie die Assembly vollständig signieren, indem Sie den privaten Schlüssel in der Assembly platzieren.

Hinweis

Bevor Sie Global Assembly Cache-Tool (Gacutil.exe) verwenden, um eine verzögert signierte Assembly im globalen Cache abzulegen, registrieren Sie die Assembly mithilfe von Strong Name-Tool (Sn.exe), um die Überprüfung zu überspringen. Beispiel: Sn.exe –Vr delaySignedAssembly. Verwenden Sie dies nur zur Entwicklung.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyDelaySignAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/descr[iption]:text

Legt eine Zeichenfolge für das Description-Feld in der Assembly fest. Platzieren Sie die Zeichenfolge zwischen doppelte Anführungszeichen (" "), wenn text ein Leerzeichen enthält. Diese Zeichenfolge ist ein benutzerdefiniertes Attribut in der Assembly und steht für die Ansicht mit Reflektion zur Verfügung.

Wenn Sie /win32res nicht angeben, wird /description in Windows Explorer als die Win32-Ressource Kommentare angezeigt.

Wenn text eine leere Zeichenfolge ist, erscheint die Win32-Ressource Kommentare als einzelnes Leerzeichen.

Bei Angabe von /win32res hat /description keine Auswirkung auf die Win32-Ressourcendaten.

Sie können diese Option auch als benutzerdefiniertes Attribut (Description) im Quellcode für ein beliebiges MSIL-Modul angeben.

/e[vidence]: file

Bettet file in die Assembly mit dem Ressourcennamen Security.Evidence ein.

Sie können Security.Evidence nicht für reguläre Ressourcen verwenden.

/fileversion: version

Legt eine Zeichenfolge für das Feld Dateiversion in der Assembly fest. Diese Zeichenfolge ist ein benutzerdefiniertes Attribut in der Assembly und steht für die Ansicht mit Reflektion zur Verfügung.

Wenn Sie /win32res nicht angeben, wird /fileversion in Windows Explorer als die Win32-Ressource Dateiversion angezeigt. Wenn Sie /fileversion nicht angeben, wird die Win32-Ressource Dateiversion durch die Win32-Ressource Assemblyversion ausgefüllt.

Bei Angabe von /win32res hat /fileversion keine Auswirkungen auf die Win32-Ressource.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyFileVersionAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/flags: flags

Legt eine Zeichenfolge für das Feld Flags in der Assembly fest. Mögliche Werte für flags sind:

0x0000

Die Assembly ist parallel kompatibel.

0x0010

Die Assembly kann nicht mit anderen Versionen ausgeführt werden, wenn diese in derselben Anwendungsdomäne ausgeführt werden.

0x0020

Die Assembly kann nicht mit anderen Versionen ausgeführt werden, wenn diese in demselben Prozess ausgeführt werden.

0x0030

Die Assembly kann nicht mit anderen Versionen ausgeführt werden, wenn diese auf demselben Computer ausgeführt werden.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyFlagsAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/fullpaths

Veranlasst Al.exe, den absoluten Pfad für alle Dateien zu verwenden, die in einer Fehlermeldung gemeldet werden.

/help

Zeigt die Befehlssyntax und die Optionen für das Tool an.

/keyf[ile]: filename

Legt eine Datei (filename) fest, die ein Schlüsselpaar oder einfach einen öffentlichen Schlüssel zum Signieren einer Assembly enthält. Der Compiler fügt den öffentlichen Schlüssel in das Assemblymanifest ein und signiert anschließend die endgültige Assembly mit dem privaten Schlüssel. Informationen zum Generieren von Schlüsseldateien und zum Installieren von Schlüsselpaaren in Schlüsselcontainern finden Sie unter Strong Name-Tool (Sn.exe).

Wenn Sie die Signatur verzögern, enthält diese Datei in der Regel den öffentlichen, nicht jedoch den privaten Schlüssel.

Informationen zum öffentlichen Schlüssel (des Schlüsselpaars) sind im Feld .publickey der Assembly enthalten.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyKeyFileAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

Wenn für die gleiche Kompilierung sowohl /keyfile als auch /keyname angegeben werden (über die Befehlszeilenoption oder ein benutzerdefiniertes Attribut), testet Al.exe zunächst den mit /keyname angegebenen Container. Wenn dies erfolgreich ist, wird die Assembly mit den Informationen aus dem Schlüsselcontainer signiert. Wenn Al.exe den Schlüsselcontainer nicht finden kann, wird die mit /keyfile angegebene Datei getestet. Wenn dies erfolgreich ist, wird die Assembly mit den Informationen in der Schlüsseldatei signiert, und die Schlüsselinformationen werden im Schlüsselcontainer installiert (vergleichbar mit der Option -i in Sn.exe), sodass bei der nächsten Kompilierung die Option /keyname gültig ist.

/keyn[ame]: text

Gibt einen Container an, der ein Schlüsselpaar enthält. Dieser wird zum Signieren der Assembly (d. h. zum Zuweisen eines starken Namens zur Assembly) verwendet, indem ein öffentlicher Schlüssel in das Assemblymanifest eingefügt wird. Al.exe signiert dann die endgültige Assembly mit einem privaten Schlüssel.

Verwenden Sie Sn.exe, um ein Schlüsselpaar zu generieren.

Die Schlüsseldaten werden im Feld .publickey der Assembly angezeigt.

Setzen Sie text in Anführungszeichen (" "), wenn ein eingebettetes Leerzeichen enthalten ist.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyKeyNameAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/main: method

Legt den vollqualifizierten Namen (class.method) der Methode fest, die als Einstiegspunkt zu verwenden ist, wenn ein Modul in eine ausführbare Datei konvertiert wird.

/nologo

Unterdrückt das Banner (Logo), das in der Befehlszeile angezeigt wird, wenn Sie Al.exe aufrufen.

/out: filename

Legt den Namen der Datei fest, die durch Al.exe erstellt wird. Diese Option ist obligatorisch.

/platform:text

Beschränkt die Plattformen, auf denen dieser Code ausgeführt werden kann: x86, Itanium, x64 oder anycpu (Standardwert).

/prod[uct]: text

Legt eine Zeichenfolge für das Feld Produkt in der Assembly fest. Platzieren Sie die Zeichenfolge zwischen doppelte Anführungszeichen (" "), wenn text ein Leerzeichen enthält. Diese Zeichenfolge ist ein benutzerdefiniertes Attribut in der Assembly und steht für die Ansicht mit Reflektion zur Verfügung.

Wenn Sie /win32res nicht angeben, wird /product in Windows Explorer als die Win32-Ressource Produktname angezeigt.

Wenn für text nichts eingegeben wird, sodass es sich um eine leere Zeichenfolge handelt, erscheint die Win32-Ressource Produktname als einzelnes Leerzeichen.

Bei Angabe von /win32res hat /product keine Auswirkung auf die Win32-Ressourcendaten.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyProductAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/productv[ersion]: text

Legt eine Zeichenfolge für das Feld Produktversion in der Assembly fest. Platzieren Sie die Zeichenfolge zwischen doppelte Anführungszeichen (" "), wenn text ein Leerzeichen enthält. Diese Zeichenfolge ist ein benutzerdefiniertes Attribut in der Assembly und steht für die Ansicht mit Reflektion zur Verfügung.

Wenn Sie /win32res nicht angeben, wird /productversion in Windows Explorer als die Win32-Ressource Produktversion angezeigt. Wenn Sie /productversion nicht angeben, wird die Win32-Ressource Produktversion durch die Win32-Ressource Dateiversion ausgefüllt.

Bei Angabe von /win32res hat /productversion keine Auswirkung auf die Win32-Ressourcendaten.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyInformationalVersionAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/t[arget]:lib[rary] | exe | win[exe]

Legt das Dateiformat der Ausgabedatei fest: lib[rary] (Codebibliothek), exe (Konsolenanwendung) oder win[exe] (Windows-basierte Anwendung). Der Standardwert lautet lib[rary].

/template: filename

Legt die Assembly (filename) fest, von der mit Ausnahme des Kulturfelds alle Assemblymetadaten geerbt werden. Der angegebene filename muss über einen starken Namen verfügen.

Eine Assembly, die Sie mit /template erstellen, ist eine Satellitenassembly.

/title: text

Legt eine Zeichenfolge für das Feld Titel in der Assembly fest. Platzieren Sie die Zeichenfolge zwischen doppelte Anführungszeichen (" "), wenn text ein Leerzeichen enthält. Diese Zeichenfolge ist ein benutzerdefiniertes Attribut in der Assembly und steht für die Ansicht mit Reflektion zur Verfügung.

Wenn Sie /win32res nicht angeben, wird /title in Windows Explorer als die Win32-Ressource Beschreibung angezeigt, die von der Shell als angezeigter Name für eine Anwendung verwendet wird. Dieser wird auch im Untermenü Öffnen mit des Kontextmenüs angezeigt, wenn ein Dateityp geöffnet werden soll, der in mehreren Anwendungen unterstützt wird.

Wenn für text nichts eingegeben wird, sodass es sich um eine leere Zeichenfolge handelt, erscheint die Win32-Ressource Beschreibung als einzelnes Leerzeichen.

Bei Angabe von /win32res hat /title keine Auswirkung auf die Win32-Ressourcendaten.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyTitleAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/trade[mark]: text

Legt eine Zeichenfolge für das Feld Marke in der Assembly fest. Platzieren Sie die Zeichenfolge zwischen doppelte Anführungszeichen (" "), wenn text ein Leerzeichen enthält. Diese Zeichenfolge ist ein benutzerdefiniertes Attribut in der Assembly und steht für die Ansicht mit Reflektion zur Verfügung.

Wenn Sie /win32res nicht angeben, wird /trademark in Windows Explorer als die Win32-Ressource Marke angezeigt.

Wenn text eine leere Zeichenfolge ist, erscheint die Win32-Ressource Marke als einzelnes Leerzeichen.

Bei Angabe von /win32res hat /trademark keine Auswirkung auf die Win32-Ressourcendaten.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyTrademarkAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/v[ersion]: version

Gibt Versionsdaten für diese Assembly an. Das Format der Versionszeichenfolge ist major.minor.build.revision. Der Standardwert ist 0.

Wenn Sie /version angeben, müssen Sie auch major angeben. Wenn Sie major und minor angeben, können Sie für build ein Sternchen (*) angeben. Dies führt dazu, dass build der Anzahl der seit dem 1. Januar 2000 (Ortszeit) vergangenen Tage und revision der Anzahl der seit dem 1. Januar 2000 um Mitternacht (Ortszeit) vergangenen Sekunden geteilt durch 2 entspricht.

Wenn Sie major, minor und build angeben, können Sie für revision ein Sternchen angeben. Dies führt dazu, dass revision der Anzahl der seit dem 1. Januar 2000 um Mitternacht (Ortszeit) vergangenen Sekunden geteilt durch zwei entspricht.

Zusammenfassend ergeben sich folgende gültige Versionszeichenfolgen:

X

X.X

X.X.*

X.X.X

X.X.X.*

X.X.X.X

X ist hierbei eine nicht signierte kurze Konstante mit Ausnahme von 65535 (0 – 65534).

Wenn Sie /win32res nicht angeben, wird /version in Windows Explorer als die Win32-Ressource Assemblyversion angezeigt.

Wenn Sie /win32res nicht angeben, werden /productversion, /fileversion und /version für die Win32-Ressourcen Assemblyversion, Dateiversion und Produktversion verwendet.

Bei Angabe von /win32res hat /version keine Auswirkung auf die Win32-Ressourcendaten.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyVersionAttribute) im Quellcode für ein beliebiges MSIL-Modul angeben.

/win32icon: filename

Fügt eine ICO-Datei in eine Assembly ein. Die ICO-Datei verleiht der Ausgabedatei in Windows Explorer das gewünschte Aussehen.

/win32res: filename

Fügt eine Win32-Ressource (RES-Datei) in die Ausgabedatei ein. Eine Win32-Ressourcendatei kann mit dem Ressourcencompiler erstellt werden. Der Ressourcencompiler wird gestartet, wenn Sie ein Visual C++-Programm kompilieren. Aus der RC-Datei wird eine RES-Datei erstellt.

@filename

Legt eine Antwortdatei fest, die Al.exe-Befehle enthält.

Die Befehle in der Antwortdatei können jeweils einzeln pro Zeile oder auf ein und derselben Zeile erscheinen. Im letzteren Fall werden sie durch Kommas oder weitere Leerzeichen voneinander getrennt.

/?

Zeigt die Befehlssyntax und die Optionen für das Tool an.

Hinweise

Alle Visual Studio-Compiler erzeugen Assemblys. Wenn Sie jedoch über eines oder mehrere Module (Metadaten ohne Manifest) verfügen, können Sie Al.exe verwenden, um eine Assembly mit dem Manifest in einer separaten Datei zu erstellen.

Um Assemblys im Cache zu installieren, sie aus dem Cache zu entfernen oder den Cacheinhalt aufzulisten, verwenden Sie das Global Assembly Cache-Tool (Gacutil.exe).

Beispiel

Der folgende Befehl erstellt eine ausführbare Datei (t2a.exe) mit einer Assembly aus dem t2.netmodule-Modul. Der Einstiegspunkt ist die Main-Methode in MyClass.

al t2.netmodule /target:exe /out:t2a.exe /main:MyClass.Main

Siehe auch

Referenz

.NET Framework-Tools
Fehler und Warnungen des Al.exe-Tools
Strong Name-Tool (Sn.exe)
Global Assembly Cache-Tool (Gacutil.exe)
SDK-Eingabeaufforderung

Weitere Ressourcen

Programmieren mit Assemblys