Compileroptionen

In diesem Artikel werden Compilerbefehlszeilenoptionen für den F#-Compiler beschrieben. Der Befehl dotnet build ruft den F#-Compiler für F#-Projektdateien auf. F#-Projektdateien werden mit der .fsproj-Erweiterung versehen.

Die Kompilierungsumgebung kann auch durch Festlegen der Projekteigenschaften gesteuert werden. Bei Projekten, die auf .NET Core ausgerichtet sind, wird die Eigenschaft „Andere Flags“ (in .fsproj: <OtherFlags>...</OtherFlags>) verwendet, um zusätzliche Befehlszeilenoptionen anzugeben.

Compileroptionen alphabetisch sortiert

In der folgenden Tabelle werden Compileroptionen alphabetisch aufgeführt. Einige der F#-Compileroptionen ähneln den C#-Compileroptionen. Wenn dies der Fall ist, wird ein Link zum Thema für die C#-Compileroptionen zur Verfügung gestellt.

Compileroptionen BESCHREIBUNG
--allsigs Generiert für jede Quelldatei in der Kompilierung eine neue Signaturdatei (oder generiert eine bereits vorhandene Signaturdatei neu). Weitere Informationen zu Signaturdateien finden Sie unter Signaturen.
-a filename.fs Generiert eine Bibliothek auf der Grundlage der angegebenen Datei. Diese Option ist die Kurzform von --target:library filename.fs.
--baseaddress:address Gibt die bevorzugte Basisadresse an, unter der eine DLL geladen werden soll.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /baseaddress (C# Compiler Options).
--codepage:id Gibt an, welche Codepage beim Kompilieren verwendet werden soll, wenn die erforderliche Codepage nicht die aktuelle Standardcodepage für das System ist.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter CodePage.
--consolecolors Gibt an, dass Fehler und Warnungen farbkodierten Text in der Konsole verwenden.
--crossoptimize[+ or -] Aktiviert oder deaktiviert modulübergreifende Optimierungen.
--delaysign[+|-] Signiert das Assembly verzögert nur mit dem öffentlichen Teil des Schlüssels für einen starken Namen.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /delaysign (C# Compiler Options).
--checked[+|-] Aktiviert oder deaktiviert die Generierung von Überlaufprüfungen.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /checked (C# Compiler Options).
--debug[+|-]

-g[+|-]

--debug:[full|pdbonly]

-g: [full|pdbonly]
Aktiviert oder deaktiviert die Generierung der Debuginformationen, oder gibt den Typ der zu generierenden Debuginformationen an. Der Standardwert ist full und lässt das Anfügen an ein Programm zu, das gerade ausgeführt wird. Wählen Sie pdbonly, um eingeschränkte Debuginformationen abzurufen, die in einer PDB-Datei (Program Database, Programmdatenbank) gespeichert sind.

Entsprechung der C#-Compileroption mit demselben Namen. Weitere Informationen finden Sie unter

DebugType
--define:symbol

-d:symbol
Definiert ein bei der bedingten Kompilierung zu verwendendes Symbol.
--deterministic[+|-] Generiert eine deterministische Assembly (einschließlich Modulversions-GUID und Zeitstempel). Diese Option kann nicht mit Platzhalter-Versionsnummern verwendet werden und unterstützt nur eingebettete und portierbare Debugtypen.
--doc:xmldoc-filename Weist den Compiler an, in der angegebenen Datei XML-Dokumentationskommentare zu generieren. Weitere Informationen finden Sie unter XML Documentation.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /doc (C# Compiler Options).
--fullpaths Weist den Compiler an, vollqualifizierte Pfade zu generieren.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /fullpaths (C# Compiler Options).
--help

-?
Zeigt Verwendungsinformationen an, einschließlich einer kurzen Beschreibung aller Compileroptionen.
--highentropyva[+|-] Aktivieren oder deaktivieren Sie Address Space Layout Randomization (ASLR) mit hoher Entropie, eine verbesserte Sicherheitsfunktion. Das Betriebssystem legt die Speicherorte im Speicher, in denen Infrastruktur für Anwendungen (wie dem Stapel und den Heap) geladen wird, zufällig fest. Wenn Sie diese Option aktivieren, können die Betriebssysteme diese Zufallszuteilung verwenden, um den vollständigen 64-Bit-Adressbereich auf einem 64-Bit-Computer zu verwenden.
--keycontainer:key-container-name Gibt einen Schlüsselcontainer mit starkem Namen an.
--keyfile:filename Gibt den Namen einer Datei mit öffentlichem Schlüssel zum Signieren der generierten Assembly an.
--lib:folder-name

-I:folder-name
Gibt ein Verzeichnis an, in dem Assemblys gesucht werden sollen, auf die verwiesen wird.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /lib (C# Compiler Options).
--linkresource:resource-info Verknüpft eine angegebene Ressource mit der Assembly. „resource-info“ hat das Format filename[name[public|private]].

Diese Option zum Verknüpfen einer einzelnen Ressource bietet eine Alternative zum Einbetten einer gesamten Ressourcendatei mit der --resource-Option.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /linkresource (C# Compiler Options).
--mlcompatibility Ignoriert Warnungen, die bei der Verwendung von Funktionen angezeigt werden, die für Kompatibilität mit anderen ML-Versionen konzipiert sind.
--noframework Deaktiviert den Standardverweis auf die .NET Framework-Assembly.
--nointerfacedata Weist den Compiler an, die Ressource wegzulassen, die normalerweise einer Assembly hinzugefügt wird, die F#-spezifische Metadaten enthält.
--nologo Zeigt beim Starten des Compilers nicht den Bannertext an.
--nooptimizationdata Weist den Compiler an, nur grundlegende Optimierungsoptionen zum Implementieren von Inlinekonstrukten einzuschließen. Dies verhindert zwar modulübergreifende Inlinekonstrukte, verbessert aber die Binärkompatibilität.
--nowin32manifest Weist den Compiler an, das Standard-Win32-Manifest auszulassen.
--nowarn:warning-number-list Deaktiviert bestimmte, nach Nummern aufgeführte Warnungen. Trennen Sie die einzelnen Warnungsnummern durch ein Komma. Sie können die Warnungsnummer für eine Warnung aus der Kompilierungsausgabe ermitteln.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /nowarn (C# Compiler Options).
--optimize[+|-] [optimization-option-list]

-O[+|-] [optimization-option-list]
Aktiviert oder deaktiviert Optimierungen. Einige Optimierungsoptionen können selektiv aktiviert oder deaktiviert werden, indem sie aufgeführt werden. Diese lauten nojitoptimize, nojittracking, nolocaloptimize, nocrossoptimize und notailcalls.
--out:output-filename

-o:output-filename
Gibt den Namen der kompilierten Assembly oder des kompilierten Moduls an.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /out (C# Compiler Options).
--pathmap:path=sourcePath,... Gibt an, wie physische Pfade den Quellpfadnamen zugeordnet werden, die vom Compiler ausgegeben werden.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter PathMap.
--pdb:pdb-filename Benennt die PDB-(Program Database-)Ausgabedebugdatei. Diese Option wird nur angewendet, wenn --debug ebenfalls aktiviert ist.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter PdbFile.
--platform:platform-name Gibt an, dass der generierte Code nur auf der angegebenen Plattform (x86, Itanium oder x64) ausgeführt wird, oder, wenn der Plattformname anycpu ausgewählt wird, dass der generierte Code auf jeder Plattform ausgeführt werden kann.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /platform (C# Compiler Options).
--preferreduilang:lang Gibt den Namen der bevorzugten Ausgabesprachenkultur an (z. B. es-ES, ja-JP).
--quotations-debug Gibt an, dass zusätzliche Debuginformationen für Ausdrücke ausgegeben werden, die von F#-Quotation-Literalen und reflektierten Definitionen abgeleitet werden. Die Debuginformationen werden zu den benutzerdefinierten Attributen eines F#-Ausdrucksstrukturknotens hinzugefügt. Weitere Informationen finden Sie unter Codezitate sowie unter Expr.CustomAttributes.
--reference:assembly-filename

-r:assembly-filename
Macht Code aus einer F#- oder .NET Framework-Assembly für den Code verfügbar, der kompiliert wird.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /reference (C# Compiler Options).
--resource:resource-filename Bettet eine verwaltete Ressourcendatei in die generierte Assembly ein.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /resource (C# Compiler Options).
--sig:signature-filename Generiert eine Signaturdatei auf Grundlage der generierten Assembly. Weitere Informationen zu Signaturdateien finden Sie unter Signaturen.
--simpleresolution Gibt an, dass Assemblyverweise mit verzeichnisbasierten Mono-Regeln aufgelöst werden sollen, und nicht mit der MSBuild-Auflösung. Sofern nicht Mono verwendet wird, wird standardmäßig die MSBuild-Auflösung verwendet.
--standalone Gibt an, dass eine Assembly erstellt wird, die alle ihre Abhängigkeiten enthält, damit sie eigenständig ausgeführt wird, ohne dass Bedarf für zusätzliche Assemblys, wie die F#-Bibliothek, besteht.
--staticlink:assembly-name Verknüpft statistisch die angegebene Assembly und alle DLLs, auf die verwiesen wird und die von dieser Assembly abhängen. Verwenden Sie den Assemblynamen, nicht den DLL-Namen.
--subsystemversion Gibt die Version des Subsystems des Betriebssystems an, das von der generierten ausführbaren Datei verwendet wird. Verwenden Sie 6.02 für Windows 8.1, 6.01 für Windows 7 und 6.00 für Windows Vista. Diese Option gilt nur für ausführbare Dateien, nicht für DLLs, und kann nur dann verwendet werden, wenn die Anwendung von bestimmten Sicherheitsfeatures abhängt, die nur in bestimmten Betriebssystemversionen verfügbar sind. Wenn diese Option verwendet wird und ein Benutzer versucht, die Anwendung auf einer niedrigeren Version des Betriebssystems auszuführen, wird eine Fehlermeldung angezeigt.
--tailcalls[+|-] Aktiviert oder deaktiviert die Verwendung der Tail-IL-Anweisung, die die Wiederverwendung des Stapelrahmens für endrekursive Funktionen verursacht. Diese Option ist standardmäßig aktiviert.
--target:[exe|winexe|library|module] filename Gibt den Typ und Dateinamen des generierten kompilierten Codes an.
  • exe weist auf eine Konsolenanwendung hin.
  • winexe weist auf eine Windows-Anwendung hin, die sich von der Konsolenanwendung dadurch unterscheidet, dass für sie keine standardmäßigen Eingabe-/Ausgabestreams (stdin, stdout und stderr) definiert sind.
  • library ist eine Assembly ohne Einstiegspunkt.
  • module ist ein .NET Framework-Modul (.netmodule), was später mit anderen Modulen zu einer Assembly kombiniert werden kann.
--times Zeigt Zeitinformationen für die Kompilierung an.
--utf8output Aktiviert das Drucken der Compilerausgabe mit UTF-8-Codierung.
--warn:warning-level Legt eine Warnstufe (0 bis 5) fest. Der Standardwert ist 3. Jeder Warnung wird auf Grundlage ihres Schweregrads eine Stufe zugewiesen. Bei Stufe 5 werden mehr Warnungen (jedoch mit geringerem Schweregrad) als bei Stufe 1 angezeigt.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /warn (C# Compiler Options).
--warnon:warning-number-list Aktiviert bestimmte Warnungen, die standardmäßig oder aufgrund einer anderen Befehlszeilenoption deaktiviert sind. Die Liste ist durch Kommas getrennt.
--warnaserror[+|-] [warning-number-list] Aktiviert oder deaktiviert die Option zum Ausgeben von Warnungen als Fehler. Sie können bestimmte Warnungsnummern angeben, die deaktiviert oder aktiviert werden sollen. Optionen, die später in der Befehlszeile stehen, überschreiben Optionen, die früher in der Befehlszeile stehen. Geben Sie beispielsweise --warnaserror+--warnaserror-:warning-number-list an, wenn Sie Warnungen angeben möchten, die nicht als Fehler gemeldet werden sollen.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /warnaserror (C# Compiler Options).
--win32manifest:manifest-filename Fügt eine Win32-Manifestdatei zur Kompilierung hinzu. Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter /win32manifest (C#-Compileroptionen).
--win32res:resource-filename Fügt eine Win32-Ressourcendatei zur Kompilierung hinzu.

Diese Compileroption entspricht der C#-Compileroption gleichen Namens. Weitere Informationen finden Sie unter Win32Resource.

Opt-In-Warnungen

Der F#-Compiler unterstützt mehrere Opt-In-Warnungen:

Number Zusammenfassung Ebene BESCHREIBUNG
21 Zur Laufzeit überprüfte Rekursion 5 Warnen, wenn eine rekursive Verwendung zur Laufzeit auf ordnungsgemäße Initialisierung überprüft wird
22 Bindungen, die nicht in der richtigen Reihenfolge ausgeführt werden 5 Warnen, wenn eine rekursive Bindung aufgrund eines Vorwärtsverweises möglicherweise nicht in der richtigen Reihenfolge ausgeführt wird
52 Implizite Kopien von Strukturen 5 Warnen, wenn eine unveränderliche Struktur kopiert wird, um sicherzustellen, dass das Original nicht durch einen Vorgang verändert wird
1178 Implizite Gleichheit/impliziter Vergleich 5 Warnen, wenn eine F#-Typdeklaration implizit als NoEquality oder NoComparison abgeleitet wird, aber das Attribut nicht im Typ vorhanden ist
1182 Nicht verwendete Variablen n/v Warnen bei nicht verwendeten Variablen
3180 Implizite Heapzuordnungen n/v Warnen, wenn eine änderbare lokale Variable implizit als Verweiszelle zugewiesen ist, da sie von einem Abschluss erfasst wurde
3366 Indexnotation n/v Warnen, wenn die Indexnotation expr.[idx] von F# 5 verwendet wird
3517 InlineIfLambda-Fehler Warnen, wenn der F#-Optimierer einen InlineIfLambda-Wert nicht zu einem Inlinewert machen kann (beispielsweise, wenn anstelle eines expliziten Lambdaausdrucks ein berechneter Funktionswert bereitgestellt wurde)
3387 op_Implicit-Konvertierung n/v Warnen, wenn eine implizite .NET-Konvertierung für ein Methodenargument verwendet wird
3388 Zusätzlicher impliziter Upcast n/v Warnen, wenn implizit ein zusätzlicher Upcast verwendet wird (hinzugefügt in F# 6)
3389 Implizite Erweiterung n/v Warnen, wenn eine implizite numerische Erweiterung verwendet wird
3390 Nicht wohlgeformte XML-Dokumentationskommentare n/v Warnen, wenn XML-Dokumentkommentare auf unterschiedliche Weise nicht wohlgeformt sind.

Diese Warnungen können mithilfe von /warnon:NNNN oder <WarnOn>NNNN</WarnOn> aktiviert werden. NNNN ist hierbei die jeweilige Warnungsnummer. (Sie können auch die Syntax <WarnOn>FSNNNN</WarnOn> verwenden, z. B. <WarnOn>FS3388</WarnOn>.) Hinweis: Wenn die WarnOn-Eigenschaft mehrmals angegeben wird, wird nur das letzte Vorkommen verwendet. Um mehrere Warnungen anzugeben, geben Sie die WarnOn-Eigenschaft einmal mit einer durch Trennzeichen getrennten Zeichenfolge als Inhalt bereit: <WarnOn>3388,3559</WarnOn>.

Titel BESCHREIBUNG
F# Interactive-Optionen Beschreibt vom F#-Interpreter fsi.exe unterstützte Befehlszeilenoptionen.
Projekteigenschaftenverweise Beschreibt die Benutzeroberfläche für Projekte, einschließlich Projekteigenschaftenseiten, die Buildoptionen bereitstellen.