Al.exe (Assembly Linker-Tool)

Der Assemblylinker generiert eine Datei mit einem Assemblymanifest aus einer oder mehreren Dateien, bei denen es sich um Module oder Ressourcendateien handelt. Ein Modul ist eine IL-Datei (Intermediate Language, Zwischensprache), die nicht über ein Assemblymanifest verfügt.

Hinweis

Ab Visual Studio 2008 wird sowohl vom C#- als auch vom Visual Basic-Compiler automatisch ein Win32-Manifest in die Assembly eingebettet. Weitere Informationen finden Sie unter -win32manifest (C#-Compileroptionen).

Dieses Tool wird automatisch mit Visual Studio installiert. Um das Tool auszuführen, verwenden Sie die Developer-Eingabeaufforderung von Visual Studio oder Visual Studio Developer PowerShell.

Geben Sie an der Eingabeaufforderung Folgendes ein:

Syntax

al sources options

Parameter

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

Quelle Beschreibung
file[,target] Kopiert den Inhalt von file (ein Modul) in die als target angegebene Datei. Nach dem Kopieren wird target von Al.exe in eine Assembly kompiliert.
/embed[resource]:file[,name[,private]] Bettet die durch file angegebene Ressource in das Image ein, das das Assemblymanifest enthält. Der Inhalt von file wird von Al.exe in das portierbare ausführbare Image (PE, Portable Executable) kopiert.

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 in System.Resources möglich. Weitere Informationen finden Sie unter ResourceManager. Verwenden Sie für alle anderen Ressourcen die GetManifestResource*-Methoden in Assembly, um zur Runtime 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 aufweisen. 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 Compileroption /linkresource zu verwenden. Weitere Informationen finden Sie unter -linkresource (C#-Compileroptionen).

Der name-Parameter ist ein interner Bezeichner für die Ressource. Der Parameter target gibt einen Pfad und einen Dateinamen an, in den Al.exe den file kopiert. Nach dem Kopieren kompiliert Al.exetarget 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 mit Membern im System.Resources-Namespace möglich. Weitere Informationen finden Sie unter ResourceManager. Verwenden Sie für alle anderen Ressourcen die GetManifestResource*-Methoden in der 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.

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. Standardmäßig wird der Algorithmus "CALG_SHA1" verwendet. 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 (AssemblyAlgorithmIdAttribute) im Quellcode für ein beliebiges Modul angeben.
/base[address]:addr Legt die Adresse fest, an der eine DLL zur Laufzeit auf dem 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 Informationen zum Erfassen von Bugs.
/comp[any]:text Legt eine Zeichenfolge für das Feld "Company" in der Assembly fest. Schließen Sie die Zeichenfolge in doppelte Anführungszeichen (" ") ein, 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 im Datei-Explorer als Company-Eigenschaft für die Datei angezeigt. Wenn Sie /win32res angeben, werden die Firmeninformationen in der angegebenen Ressourcendatei als Company-Eigenschaft im Datei-Explorer angezeigt.

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

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

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyCompanyAttribute) im Quellcode für jedes CIL-Modul angeben.
/config[uration]:text Legt eine Zeichenfolge für das Feld "Configuration" in der Assembly fest. Schließen Sie die Zeichenfolge in doppelte Anführungszeichen (" ") ein, 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, wird die Win32-Ressource "Configuration" als einzelnes Leerzeichen angezeigt.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyConfigurationAttribute) im Quellcode für jedes CIL-Modul angeben.
/copy[right]:text Legt eine Zeichenfolge für das Feld "Copyright" in der Assembly fest. Schließen Sie die Zeichenfolge in doppelte Anführungszeichen (" ") ein, 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 im Datei-Explorer als die Win32-Ressource „Copyright“ angezeigt.

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

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

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyCopyrightAttribute) im Quellcode für jedes CIL-Modul angeben.
/c[ulture]:text Legt die Kulturzeichenfolge fest, die mit der Assembly verknüpft werden soll. Gültige Werte für Kulturen sind im RFC-Dokument 1766 (Request for Comments) zum Internet mit dem Titel "Tags for the Identification of Languages" definiert.

Schließen Sie die Zeichenfolge in doppelte Anführungszeichen (" ") ein, wenn text ein Leerzeichen enthält. Es gibt keine Standardkulturzeichenfolge. Die Zeichenfolge ist für die Ansicht mit Reflektion verfügbar.

Weitere Informationen zu gültigen text-Zeichenfolgen finden Sie unter CultureInfo.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyCultureAttribute) im Quellcode für jedes CIL-Modul angeben.
/delay[sign][+ or -] Gibt an, 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 einschließen möchten.

Wenn Sie eine vollständig signierte Assembly anfordern, wird von Al.exe der Hash der Datei mit dem Manifest (Assemblymetadaten) erstellt und mit dem privaten Schlüssel signiert. Die sich ergebende digitale Signatur wird in der Datei mit dem Manifest gespeichert. Wenn eine Assembly mit Verzögerung signiert wird, wird von Al.exe die Signatur nicht berechnet und gespeichert, sondern lediglich ein Bereich in der Datei reserviert, damit die Signatur zu einem späteren Zeitpunkt hinzugefügt werden kann.

Der Standardwert ist /delaysign- .

Die Option /delaysign hat keine Auswirkung, wenn Sie nicht mit /keyfile oder /keyname verwendet wird.

Mit /delaysign+ können Tester die Assembly beispielsweise im globalen Cache ablegen. Nach dem Testen können Sie die Assembly vollständig signieren, indem Sie den privaten Schlüssel in die Assembly einschließen.

Hinweis: Bevor Sie das Global Assembly Cache-Tool Gacutil.exe zum Speichern einer mit Verzögerung signierten Assembly im globalen Cache verwenden, führen Sie das Strong Name-Tool Sn.exe aus, um die Assembly für das Überspringen der Überprüfung zu registrieren. Beispielsweise Sn.exe –Vr delaySignedAssembly. Verwenden Sie dieses Verfahren nur zur Entwicklung.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyDelaySignAttribute) im Quellcode für jedes CIL-Modul angeben.
/descr[iption]:text Legt eine Zeichenfolge für das Feld Description in der Assembly fest. Schließen Sie die Zeichenfolge in doppelte Anführungszeichen (" ") ein, 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 im Datei-Explorer als die Win32-Ressource Comments angezeigt.

Wenn „text“ eine leere Zeichenfolge ist, wird die Win32-Ressource Comments als einzelnes Leerzeichen angezeigt.

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

Sie können diese Option auch als benutzerdefiniertes Attribut (Description) im Quellcode für jedes CIL-Modul angeben.
/e[vidence]:file Bettet file in die Assembly mit dem Ressourcennamen "Security.Evidence" ein.

Sie können "Security.Evidence" nicht für normale Ressourcen verwenden.
/fileversion:version Legt eine Zeichenfolge für das Feld File Version 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 als die Win32-Ressource File Version verwendet. Wenn Sie /fileversion nicht angeben, wird die Win32-Ressource File Version durch die Win32-Ressource Assembly Version gefüllt.

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

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyFileVersionAttribute) im Quellcode für jedes CIL-Modul angeben.
/flags:flags Legt einen Wert für das Feld Flags in der Assembly fest. Mögliche Werte für flags:

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 die Ausführung in demselben Prozess stattfindet.

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 jedes CIL-Modul angeben.
/fullpaths Veranlasst Al.exe, den absoluten Pfad für alle Dateien zu verwenden, die in einer Fehlermeldung gemeldet werden.
/help Zeigt Befehlssyntax und 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) werden im Feld ".publickey" der Assembly angezeigt.

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

Wenn für die gleiche Kompilierung sowohl /keyfile als auch /keyname angegeben werden (über eine Befehlszeilenoption oder ein benutzerdefiniertes Attribut), wird von Al.exe zunächst versucht, den mit /keyname angegebenen Container zu verwenden. Wenn dies erfolgreich ist, wird die Assembly mit den Informationen im Schlüsselcontainer signiert. Wenn der Schlüsselcontainer von Al.exe nicht gefunden wird, wird versucht, die mit /keyfile angegebene Datei zu verwenden. 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. Dann wird die endgültige Assembly von Al.exe mit dem privaten Schlüssel signiert.

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

Die Schlüsselinformationen werden im Feld ".publickey" der Assembly angezeigt.

Schließen Sie text in doppelte Anführungszeichen (" ") ein, wenn ein eingebettetes Leerzeichen enthalten ist.

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyKeyNameAttribute) im Quellcode für jedes CIL-Modul angeben.
/main:method Legt den vollqualifizierten Namen (class.method) der Methode fest, die als Einstiegspunkt verwendet werden soll, wenn ein Modul in eine ausführbare Datei konvertiert wird.
/nologo Unterdrückt das Banner (oder Logo), das in der Befehlszeile angezeigt wird, wenn Sie Al.exe aufrufen.
/out:filename Gibt den Namen der von Al.exe erstellten Datei an. Diese Option muss angegeben werden.
/platform:text Schränkt die Plattform ein, auf der dieser Code ausgeführt werden kann. Mögliche Werte: "x86", "x64", "Itanium", "x64", "anycpu" (Standard) oder "anycpu32bitpreferred".
/prod[uct]:text Legt eine Zeichenfolge für das Feld Product in der Assembly fest. Schließen Sie die Zeichenfolge in doppelte Anführungszeichen (" ") ein, 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 im Datei-Explorer als die Win32-Ressource Product Name angezeigt.

Wenn es sich bei „text“ um eine leere Zeichenfolge handelt, wird die Win32-Ressource Product Name als einzelnes Leerzeichen angezeigt.

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

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyProductAttribute) im Quellcode für jedes CIL-Modul angeben.
/productv[ersion]:text Legt eine Zeichenfolge für das Feld Product Version in der Assembly fest. Schließen Sie die Zeichenfolge in doppelte Anführungszeichen (" ") ein, 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 als die Win32-Ressource Product Version verwendet. Wenn Sie /productversion nicht angeben, wird die Win32-Ressource Product Version durch die Win32-Ressource File Version gefüllt.

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

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyInformationalVersionAttribute) im Quellcode für jedes CIL-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 ist lib[rary].
/template:filename Legt die Assembly (filename) fest, von der mit Ausnahme des Felds für die Kultur alle Assemblymetadaten geerbt werden.

Eine Assembly, die Sie mit der Option /template erstellen, ist eine Satellitenassembly.
/title:text Legt eine Zeichenfolge für das Feld Title in der Assembly fest. Schließen Sie die Zeichenfolge in doppelte Anführungszeichen (" ") ein, 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 im Datei-Explorer als die Win32-Ressource Description angezeigt, die von der Shell als Anzeigename einer Anwendung verwendet wird. Dieser wird auch im Untermenü Öffnen mit des Kontextmenüs eines Dateityps angezeigt, der von mehreren Anwendungen unterstützt wird.

Wenn es sich bei „text“ um eine leere Zeichenfolge handelt, wird die Win32-Ressource Description als einzelnes Leerzeichen angezeigt.

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

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyTitleAttribute) im Quellcode für jedes CIL-Modul angeben.
/trade[mark]:text Legt eine Zeichenfolge für das Feld Trademark in der Assembly fest. Schließen Sie die Zeichenfolge in doppelte Anführungszeichen (" ") ein, 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 im Datei-Explorer als die Win32-Ressource Trademark angezeigt.

Wenn es sich bei „text“ um eine leere Zeichenfolge handelt, wird die Win32-Ressource Trademark als einzelnes Leerzeichen angezeigt.

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

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyTrademarkAttribute) im Quellcode für jedes CIL-Modul angeben.
/v[ersion]:version Gibt Versionsinformationen für diese Assembly an. Die Versionszeichenfolge hat folgendes Format: 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 ein Sternchen (*) für build angeben. Dies führt dazu, dass build der Anzahl der seit dem 1. Januar 2000 (Ortszeit) vergangenen Tage und revision der Anzahl der seit Mitternacht des aktuellen Tags (Ortszeit) vergangenen Sekunden geteilt durch zwei 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 Mitternacht des aktuellen Tags (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

Dabei steht "X" für eine kurze Ganzzahlkonstante ohne Vorzeichen mit Ausnahme von 65535 (0 – 65534).

Wenn Sie /win32res nicht angeben, wird /version als die Win32-Ressource Assembly Version verwendet.

Wenn Sie /win32res nicht angeben, werden /productversion, /fileversion und /version für die Win32-Ressourcen Assembly Version, „File Version“ und Product Version verwendet.

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

Sie können diese Option auch als benutzerdefiniertes Attribut (AssemblyVersionAttribute) im Quellcode für jedes CIL-Modul angeben.
/win32icon:filename Fügt eine ICO-Datei in die Assembly ein. Die ICO-Datei verleiht der Ausgabedatei in Datei-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 Gibt eine Antwortdatei an, die Al.exe-Befehle enthält.

Die Befehle in der Antwortdatei können jeweils in einer Zeile oder zusammen in einer Zeile durch mehrere Leerzeichen getrennt stehen.
/? Zeigt Befehlssyntax und Optionen für das Tool an.

Hinweise

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

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

Fehler und Warnungen

In der folgende Tabelle werden die durch Al.exe generierten Fehler aufgelistet.

Fehler Beschreibung
al1001 Interner Compilerfehler.

Versuchen Sie festzustellen, ob Al.exe einen Fehler verursacht, weil unerwartete Syntax nicht analysiert werden kann. Wenden Sie sich dann an Produktsupport von Microsoft.
al1002 Nicht genügend Arbeitsspeicher

Al.exe steht nicht genügend Arbeitsspeicher zur Verfügung. Die Anwendung wurde beendet. Vergrößern Sie den verfügbaren Arbeitsspeicher.
al1003 Auf die Compileroption "option" muss ein Argument folgen.

Al.exe hat erwartet, dass ein Argument an eine Befehlszeilenoption übergeben wird. Wenn Sie z.B. /algid: angeben, müssen Sie einen Algorithmusbezeichner übergeben.
al1004 Unerwarteter CLR-Initialisierungsfehler (Common Language Runtime) - "reason".

Al.exe hat einen Fehler bei der Installation von Visual Studio oder der CLR aufgrund der angegebenen Ursache gemeldet.
al1005 Die Datei "file" ist zu groß zum Öffnen.

Alle durch Al.exe geöffneten Dateien müssen kleiner als 4 GB sein.
al1006 Die Antwortdatei "file" war bereits eingeschlossen.

Die gleiche Antwortdatei wurde mehrmals in der Befehlszeile angegeben (@file). Die Antwortdatei kann nur einmal eingeschlossen werden.
al1007 Fehler beim Öffnen der Antwortdatei "file" - "reason".

Al.exe kann die angegebene Antwortdatei aufgrund der angegebenen Ursache nicht öffnen.
al1008 Fehlende Dateispezifikation für die Befehlszeilenoption "option".

Al.exe hat erwartet, dass eine Datei an eine Befehlszeilenoption übergeben wird. Wenn Sie z.B. die Option /out angeben, müssen Sie eine Datei angeben.
al1009 "file" kann nicht zum Schreiben geöffnet werden.

Al.exe konnte nicht in eine Datei schreiben, z.B. in die Assemblyausgabedatei. Der Datenträger ist ggf. voll, die Datei ist ggf. schreibgeschützt, oder Sie besitzen ggf. keine Berechtigungen für die Datei.
al1010 Befehlszeilensyntaxfehler: Option ':text' für 'option' fehlt

Al.exe hat erwartet, dass ein Argument an eine Befehlszeilenoption übergeben wird. Wenn Sie z.B. die Option /title angeben, müssen Sie eine Zeichenfolge übergeben.
al1011 Die Datei "file" ist eine ausführbare Datei und kann nicht als Textdatei geöffnet werden.

Eine Binärdatei wurde angegeben, obwohl eine Textdatei erwartet wurde. Dieser Fehler tritt z. B. auf, wenn eine Binärdatei in der Befehlszeile als Antwortdatei übergeben wird.
al1012 "value" ist keine gültige Einstellung für die Option "option".

Ein unerwarteter Wert wurde an eine Befehlszeilenoption übergeben. Dieser Fehler tritt z.B. auf, wenn Sie einen ungültigen Wert für die Option /target angeben.
al1013 Nicht erkannte Befehlszeilenoption: "option".

Es wurde eine ungültige Befehlszeilenoption angegeben.
al1014 Unerwarteter Initialisierungsfehler - "reason".

Al.exe hat einen COM-Initialisierungsfehler erkannt. Dies ist möglicherweise darauf zurückzuführen, dass zu wenig Arbeitsspeicher zur Verfügung steht. Die wahrscheinlichere Ursache sind jedoch die DLL-Systemdateien. Eine ähnliche Fehlermeldung sollte angezeigt werden, wenn Sie eine mit Automatisierung oder COM kompatible Anwendung wie etwa Microsoft Visual Studio ausführen.

Installieren Sie das Betriebssystem erneut.
al1015 Die Nachrichtendatei "alinkui.dll" wurde nicht gefunden.

Al.exe erfordert Alinkui.dll. Stellen Sie sicher, dass sich diese Datei in Ihrem Pfad befindet. Falls erforderlich, kopieren Sie sie von der Produkt-CD.
al1016 Es wurden keine gültigen Eingabedateien angegeben.

Al.exe benötigt mindestens eine Eingabedatei, die keine Assemblyinformationen enthält.
al1017 Es wurde kein Zieldateiname angegeben.

Die erforderliche Option /out, die den Zieldateinamen angibt, fehlte.
al1018 Die erforderliche Datei "file" konnte nicht geladen werden.

Bestimmte DLL-Dateien können nicht geladen werden. Installieren Sie Visual Studio oder das Windows SDK erneut.
al1019 Metadatenfehler beim Erstellen der Assembly – Ursache

Die Generierung der Assembly wurde aufgrund der angegebenen Ursache unterbrochen. Dieser Fehler tritt z.B. auf, wenn eine Datei, die Sie mit der Option /win32res angeben, nicht gefunden wurde.
al1020 Die enthaltene Assembly "file" wird ignoriert.

Eine Eingabedatei, die eine Assembly enthält, wurde angegeben. Al.exe-Eingabedateien dürfen keine Assemblys enthalten.
al1021 "setting": Überschreiben der vorherigen Einstellung.

Ein Modul weist einen Wert für eine bestimmte Einstellung auf, der ggf. über benutzerdefinierte Attribute zugewiesen und mit einem Wert überschrieben wurde, der mithilfe einer Al.exe-Befehlszeilenoption übergeben wurde.
al1022 Fehler beim Lesen der eingebetteten Ressource „file“ – Ursache

Al.exe kann aufgrund der angegebenen Ursache die Datei nicht lesen, die an die Option /embedresource übergeben wurde.
al1023 Fehler beim Einbetten der Ressource „file“ – Ursache

Das Betriebssystem kann die Ressourcendatei aufgrund der angegebenen Ursache nicht in die Assembly einbetten.
al1025 Der ComType-Datensatz "record" zeigt auf einen ungültigen Dateidatensatz "record".

Die Metadaten im Eingabemodul sind ungültig. Das Tool, das das Modul generiert hat, muss repariert werden.
al1026 Die angegebene Version "version" ist ungültig.

Informationen hinsichtlich gültiger Formate finden Sie unter der Option /version.
al1028 In der Schlüsseldatei "file" fehlt der für die Signierung erforderliche private Schlüssel.

Eine Schlüsseldatei, die nur den öffentlichen Schlüssel enthält, wurde an die Option /keyfile übergeben. Verwenden Sie das Strong Name-Tool (Sn.exe), um (wie im folgenden Befehl gezeigt) eine Datei mit einem öffentlichen und einem privaten Schlüssel zu generieren.

sn -k keypair.snk.
al1029 Der Name "container" des Schlüsselcontainers ist nicht vorhanden.

Der an die Option /keyname übergebene Wert ist kein gültiger Container. Verwenden Sie das Strong Name-Tool (Sn.exe), um einen Container zu erstellen.
al1030 Der Kryptografiedienst wurde nicht ordnungsgemäß installiert oder weist keinen geeigneten Schlüsselanbieter auf.

Sie müssen das Betriebssystem erneut installieren oder ein Kryptografiehilfsprogramm installieren, das zum Erstellen des Schlüssels verwendet wird.
al1031 Fehler beim Lesen des Symbols „file“ – Ursache

Al.exe kann aufgrund der angegebenen Ursache die Datei nicht lesen, die an die Option /win32icon übergeben wurde
al1032 Fehler beim Generieren der Ressourcen für „file“ – Ursache

Al.exe kann aufgrund von nicht genügend Speicherplatz auf dem Datenträger oder eines anderen Fehlers keine Datei erstellen. Dieser Fehler tritt auf, wenn Sie die Option /win32icon angeben (die eine ICO-Datei generiert) oder die Option /win32res nicht angeben (die eine Datei generiert, die Ressourceninformationen aufweist).

Wenn Sie das Dateigenerierungsproblem nicht beheben können, verwenden Sie /win32res. Diese Option gibt eine Datei an, die Versions- oder Bitmapinformationen (Symbolinformationen) enthalten kann.
al1033 Das benutzerdefinierte Assemblyattribut "attribute" wurde mehrfach mit verschiedenen Werten angegeben.

Verschiedene Werte wurden an zwei Vorkommen des gleichen benutzerdefinierten Attributs in Quellmodulen übergeben, die als Eingabe für Al.exe angegeben werden.
al1034 Die Assembly "file" kann nicht kopiert oder umbenannt werden.

Bei der Verwendung der Al.exe-Syntax, mit der Sie eine Eingabedatei angeben und kopieren können, ist ein Namenskonflikt aufgetreten, der den Compiler beendet hat. Dieser Fehler tritt z. B. auf, wenn Sie input.dll,somename.dll /out:somename.dll angeben.
al1035 Bibliotheken können keinen Einstiegspunkt besitzen.

Sie können die Optionen /target:lib (den Standardwert) und /main nicht zusammen angeben.
al1036 Der für ausführbare Anwendungen erforderliche Einstiegspunkt.

Bei Verwendung der Option /target:exe oder /target:win müssen Sie auch die Option /main angeben.
al1037 Die Einstiegspunktmethode "main" wurde nicht gefunden.

Al.exe kann keine Main-Methode am durch die Option /main angegebenen Speicherort finden.
al1039 Fehler bei der Initialisierung des globalen Assemblycache-Managers – Ursache

Installieren Sie Visual Studio oder das Windows SDK erneut.
al1040 Fehler beim Installieren der Assembly im Cache – Ursache

Nur signierte Assemblys können im Cache installiert werden. Weitere Informationen finden Sie unter Globaler Assemblycache.
al1041 "method": Kann nicht der Einstiegspunkt sein, weil die Signatur oder die Sichtbarkeit falsch oder die Methode generisch ist.

Eine Methode wurde mit der Option /main angegeben. Diese Methode ist aber nicht statisch, gibt nicht int oder void zurück oder weist ungültige Argumente auf.
al1042 'exe': EXE-Dateien können keine Module hinzugefügt werden.

Eine EXE-Datei, die keine Assembly besitzt, wurde als Eingabedatei für Al.exe angegeben. Al.exe kann nur DLL-Dateien ohne Assemblys als Eingabedateien annehmen.
al1043 Der Manifestdateiname "name" darf mit Modulnamen identisch sein.

Der mit der Option /out angegebene Name darf nicht mit einem der Dateinamen identisch sein, die als Eingabe für Al.exe angegeben werden.
al1044 Fehler beim Lesen der Schlüsseldatei „file“ – Ursache

Fehler beim Öffnen oder Lesen einer Datei, die mit /keyfile oder AssemblyKeyFileAttribute angegeben wurde.
al1045 Der Dateiname "file" ist zu lang oder ungültig.

Ein Dateiname, der länger als 260 Zeichen ist, wurde an Al.exe übergeben. Wählen Sie einen Namen mit weniger Zeichen oder einem kürzeren Pfad aus, oder benennen Sie die Datei um.
al1046 Der Ressourcenbezeichner "ID" wurde in dieser Assembly bereits verwendet.

Zwei eingebettete oder verknüpfte Ressourcen besitzen den gleichen Bezeichner oder Namen (das zweite Argument). Entfernen Sie eine Ressourcen, die den Konflikt verursachen, oder benennen Sie sie um.
al1047 Fehler beim Importieren der Datei „file“ – Ursache

Eine Moduldatei kann aufgrund der angegebenen Ursache nicht geöffnet werden.
al1048 Fehler beim Importieren des Moduls „module“ der Assembly „assembly“ – Ursache

Fehler beim Öffnen einer Nicht-Manifestdatei einer Mehrfachdateiassembly. Dieser Fehler wird nicht direkt durch Al.exe ausgegeben, kann aber programmgesteuert an einen Prozess übergeben werden, der Al.exe verwendet.
al1049 Build- und Revisionsversionsnummern können für Datumsangaben vor dem 1. Januar 2000 nicht automatisch generiert werden.

Die Systemuhr auf Ihrem Computer ist auf ein Datum vor dem 1. Januar 2000 festgelegt.
al1050 Das Feature ("altes Feature"), das Sie verwenden, wird nicht mehr unterstützt. Bitte verwenden Sie stattdessen "neues Feature".

Ein zuvor von Al.exe unterstütztes Feature ist nun veraltet. Verwenden Sie stattdessen das empfohlene Feature.
al1051 Fehler beim Ausgeben des Attributs „attribute“ – Ursache

Ein benutzerdefiniertes Assemblyattribut wurde von Al.exe aufgrund der angegebenen Ursache nicht verarbeitet.
al1052 Die Datei "filename" ist keine Assembly.

Die mit /template angegebene Datei muss Assemblymetadaten enthalten. Dieser Fehler gibt an, dass die durch /template angegebene Datei keine Assembly enthielt.
al1053 Die Version "version", die für "option" angegeben wird, weist nicht das normale major.minor.build.revision-Format auf.

Al.exe hat falsch formatierte Versionsinformationen ermittelt, die mit den Optionen /fileversion oder /productversion angegeben wurden.
al1054 Die Version "version", die für "option" angegeben wird, weist nicht das normale major.minor.build.revision-Format auf.

Al.exe hat falsch formatierte Versionsinformationen ermittelt, die mit SatelliteContractVersionAttribute angegeben werden.
al1055 Die referenzierte Assembly "filename" weist keinen starken Namen auf.

Dieser Fehler wird ausgegeben, wenn Sie eine Assembly mit einem starken Namen erstellen und auf eine Assembly verweisen, die keinen starken Namen besitzt. Zum Beheben dieses Problems müssen Sie Ihre Assembly mit einem starken Namen erneut generieren oder mithilfe von Sn.exe einen starken Namen an die Assembly anfügen (siehe Dokumentation zu Sn.exe).

Dieser Fehler tritt häufig auf, wenn Sie COM-Objekte über Wrapperassemblys verwenden, z. B. wenn Sie über die Visual Studio-IDE einem C#-Projekt einen Verweis auf ein COM-Modul hinzufügen. Damit dieser Fehler vermieden wird, können Sie die Schlüsseldatei mit dem starkem Namen für COM-Wrapperassemblys in der Projekteigenschaft "Wrapperassembly-Schlüsseldatei/Name" angeben.

Wenn Sie die Wrapperassembly über „tlbimp“ erstellen, finden Sie in der Dokumentation zu tlbimp weitere Informationen, wie der Wrapperassembly ein starker Name zugewiesen wird.

Wenn eine Assembly einen starken Namen besitzt, kann sie im globalen Assemblycache installiert werden. Daher werden referenzierte Assemblys ebenfalls im globalen Assemblycache gespeichert. Nur Assemblys mit starken Namen können im globalen Assemblycache Gespeichert werden.
al1056 Die referenzierte Assembly "filename" ist eine lokalisierte Satellitenassembly.

Auf eine Assembly, die mithilfe des Attributs AssemblyCultureAttribute erstellt wurde, wurde bei der Erstellung der aktuellen Assembly verwiesen. Das Attribut AssemblyCultureAttribute gibt an, dass die Datei eine lokalisierte Satellitenassembly und nicht geeignet ist, um auf eine Satellitenassembly zu verweisen. Verweisen Sie stattdessen auf die übergeordnete Hauptassembly.
al1057 Ausführbare Dateien dürfen nicht lokalisiert sein. Die Kultur sollte immer leer sein.

Eine Assembly wird mithilfe von /target:exe erstellt, aber /culture wurde angegeben. Assemblys in der EXE-Datei dürfen keine Informationen im Feld „Culture“ enthalten.
al1058 "file" ist eine Assembly und kann nicht als Modul hinzugefügt werden.

In einer C++-Kompilierung wurde /assemblymodule (Linkeroption) eine Datei übergeben, die eine Assembly enthielt.
al1059 Unbekannter Fehler (Code).

Al.exe hat einen unbekannten Fehlercode (code) empfangen.

Die folgenden Lösungen sind möglich:

Installieren Sie Visual Studio erneut.

Installieren Sie das Windows SDK erneut.

Überprüfen Sie, ob Dateien fehlen.

Überprüfen Sie, ob ausreichend Speicherplatz vorhanden ist.

Überprüfen Sie, ob ausreichend Arbeitsspeicher vorhanden ist.

Beenden Sie andere Prozesse, die ggf. auf die Dateien zugreifen.

Starten Sie den Computer neu.
al1060 Kryptografischer Fehler bei der Hasherstellung – Ursache

Fehler beim Erstellen der Dateihashwerte für eine Mehrfachdateiassembly.
al1061 Die Option "option" kann aufgrund von "reason" nicht festgelegt werden.

Der für diese Option angegebene Wert ist aufgrund der angegebenen Ursache ungültig.
al1062 Das Modul "module" mehrmals angegeben. Es wird nur ein Mal eingeschlossen.

Diese Warnung wird generiert, wenn die gleiche Quell-, Eingabe- oder Moduldatei mehrmals in der Befehlszeile angegeben wird. Stellen Sie sicher, dass Sie den Dateinamen nur ein Mal angeben.
al1063 Der öffentliche Typ "type" wird an mehreren Speicherorten in dieser Assembly definiert: "file1" und "file2".

Der gleiche Typ wurde in mehreren Modulen in der Assembly gefunden. Nur eine Version jedes Typs kann in einer Assembly vorhanden sein.
al1064 Mehrere /bugreport-Optionen dürfen nicht angegeben werden.

Nur eine Option /bugreport ist zulässig.
al1065 Der Dateiname "File Name" ist zu lang oder ungültig.

Der angegebene Dateiname ist länger als die maximal zulässige Anzahl von Zeichen.
al1066 Das Zeichen „character“ ist in der Befehlszeile oder in Antwortdateien unzulässig.

In der Befehlszeile oder in einer Datei wurde ein ungültiges Zeichen gefunden.
al1067 "filename" ist eine Binärdatei und keine Textdatei.

Die Datei liegt im Binärformat anstatt im Textformat vor.
al1068 Das Modul "ModuleName" ist bereits in dieser Assembly definiert. Alle verknüpften Ressourcen und Module müssen einen eindeutigen Dateinamen besitzen.

Das Modul kommt in dieser Assembly mehrmals vor.
al1069 Der kurze Dateiname "filename" kann nicht erstellt werden, wenn bereits ein langer Dateiname mit dem gleichen kurzen Dateinamen vorhanden ist.

Die aktuelle Datei weist einen Namen auf, der die kurze Version eines Dateinamens ist, der bereits vorhanden ist. Wenn Sie z. B. "LongFileName.cs" kompilieren und dann mit dem Namen "LongFi~.cs" erneut kompilieren, wird ein Compilerfehler ausgelöst, der diesem Fehler ähnelt. Wenn die Compilerausgabedateien, die lange Namen aufweisen, gelöscht wurden, die analogen Linkerdateien aber beibehalten wurden, kann dieser Fehler auftreten.
al1070 Die agnostische Assembly kann kein prozessorspezifisches Modul „Module Name“ aufweisen.

Wenn der Buildvorgang mithilfe von /platform:agnostic erfolgt (oder Sie /platform nicht angeben), wird ein Fehler generiert, wenn Sie versuchen, ein nicht agnostisches Modul (mithilfe von /addmodule) hinzuzufügen. Dies ist vergleichbar mit dem Versuch, eine i386-Objektdatei mit einem ia64-Objekt zu verknüpfen.

Die Hauptquelle nicht agnostischer Module ist C++. Wenn Sie /addmodule mit einem C++-Modul verwenden, müssen Sie ggf. Ihre Buildskripts ändern, um die richtige /platform-Einstellung anzugeben.
al1072 Die Assembly und das Modul "Module Name" können nicht verschiedene Zielprozessoren besitzen.

Sie können keine Assembly mit einem Modul verknüpfen, das für andere Zielprozessoren ausgelegt ist, weil das Ergebnis auf einem einzelnen Prozessor ausgeführt werden muss.
al1073 Die Assembly "assembly", auf die verwiesen wird, ist für einen anderen Zielprozessor ausgelegt.

Sie können keine Assemblys verknüpfen, die für andere Zielprozessoren ausgelegt sind, weil das Ergebnis auf einem einzelnen Prozessor ausgeführt werden muss.
al1074 Der in "File Name" gespeicherte Modulname "Modul Name" muss mit seinem Dateinamen übereinstimmen.

Dies ist für den Linker erforderlich. Stellen Sie sicher, dass die beiden Namen übereinstimmen, um dieses Problem zu beheben.
al1075 Verzögerte Signierung wurde angefordert, es wurde aber kein Schlüssel angegeben.

Wenn eine Assembly mit Verzögerung signiert wird, wird die Signatur vom Compiler nicht berechnet und gespeichert, sondern lediglich ein Bereich in der Datei reserviert, damit die Signatur zu einem späteren Zeitpunkt hinzugefügt werden kann.

Mit /delaysign+ können Tester die Assembly beispielsweise im globalen Cache ablegen. Nach dem Testen können Sie die Assembly vollständig signieren, indem Sie den privaten Schlüssels der Assembly mithilfe des Hilfsprogramms „Assembly Linker“ hinzufügen.
al1076 Der Typ "type" wird an mehrere Assemblys weitergeleitet: "assembly" und "assembly".

Ein Typ kann nur an eine Assembly weitergeleitet werden.
al1077 Der öffentliche Typ "type" wird in "assembly" definiert und an "assembly" weitergeleitet.

In der Assembly, die generiert wird, ist ein öffentlicher Typ doppelt vorhanden. Ein Typ ist eine gültige Typdefinition,der andere Typ ist eine Typweiterleitung.

Beispiel

Mit dem folgenden Befehl wird die ausführbare Datei t2a.exe mit einer Assembly aus dem t2.netmodule-Modul erstellt. Der Einstiegspunkt ist die Main-Methode in MyClass.

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

Siehe auch