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.
|
--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. Wenn Sie beispielsweise die Warnungen angeben möchten, die nicht als Fehler gemeldet werden sollen, geben Sie an --warnaserror+ --warnaserror-:warning-number-list .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>
.
Verwandte Artikel
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. |