Compileropties

In dit artikel worden opdrachtregelopties voor de compiler voor de F#-compiler beschreven. Met de opdracht dotnet build wordt de F#-compiler op F#-projectbestanden aangeroepen. F#-projectbestanden worden vermeld met de .fsproj extensie.

De compilatieomgeving kan ook worden beheerd door de projecteigenschappen in te stellen. Voor projecten die gericht zijn op .NET Core, wordt de eigenschap Overige vlaggen, <OtherFlags>...</OtherFlags> in .fsproj, gebruikt voor het opgeven van extra opdrachtregelopties.

Opties voor compileren die alfabetisch worden vermeld

In de volgende tabel ziet u de compileropties die alfabetisch worden vermeld. Sommige van de F#-compileropties zijn vergelijkbaar met de C#-compileropties. Als dat het geval is, wordt er een koppeling naar het onderwerp C#-compileropties opgegeven.

Compileroptie Beschrijving
--allsigs Hiermee genereert u een nieuw handtekeningbestand (of genereert u een bestaand) handtekeningbestand voor elk bronbestand in de compilatie. Zie Handtekeningen voor meer informatie over handtekeningbestanden.
-a filename.fs Hiermee wordt een bibliotheek gegenereerd op basis van het opgegeven bestand. Deze optie is een korte vorm van --target:library filename.fs.
--baseaddress:address Hiermee geeft u het voorkeursbasisadres waarop een DLL moet worden geladen.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /baseaddress (C#-compileropties) voor meer informatie.
--codepage:id Hiermee geeft u op welke codepagina tijdens de compilatie moet worden gebruikt als de vereiste pagina niet de huidige standaardcodepagina voor het systeem is.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /codepagina's (C#-compileropties) voor meer informatie.
--consolecolors Hiermee geeft u op dat fouten en waarschuwingen kleurgecodeerde tekst op de console gebruiken.
--crossoptimize[+ or -] Hiermee schakelt u optimalisaties voor meerdere modules in of uit.
--delaysign[+|-] Vertraging ondertekent de assembly met alleen het openbare gedeelte van de sterke naamsleutel.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /delaysign (C#-compileropties) voor meer informatie.
--checked[+|-] Hiermee schakelt u het genereren van overloopcontroles in of uit.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /checked (C# Compiler Options)voor meer informatie.
--debug[+|-]

-g[+|-]

--debug:[full|pdbonly]

-g: [full|pdbonly]
Hiermee schakelt u het genereren van foutopsporingsgegevens in of uit, of geeft u het type foutopsporingsgegevens op dat moet worden gegenereerd. De standaardwaarde is full, waarmee u een actief programma kunt koppelen. Kies ervoor pdbonly om beperkte foutopsporingsgegevens op te halen die zijn opgeslagen in een pdb-bestand (programmadatabase).

Komt overeen met de C#-compileroptie van dezelfde naam. Zie voor meer informatie

/foutopsporing (C#-compileropties).
--define:symbol

-d:symbol
Hiermee definieert u een symbool voor gebruik in voorwaardelijke compilatie.
--deterministic[+|-] Produceert een deterministische assembly (inclusief GUID van moduleversie en tijdstempel). Deze optie kan niet worden gebruikt met versienummers met jokertekens en ondersteunt alleen ingesloten en draagbare foutopsporingstypen
--doc:xmldoc-filename Hiermee wordt de compiler geïnstrueerd om xml-documentatieopmerkingen te genereren voor het opgegeven bestand. Zie xml-documentatie voor meer informatie.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /doc (C#-compileropties) voor meer informatie.
--fullpaths Hiermee wordt de compiler geïnstrueerd om volledig gekwalificeerde paden te genereren.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /fullpaths (C# Compiler Options)voor meer informatie.
--help

-?
Geeft gebruiksgegevens weer, inclusief een korte beschrijving van alle compileropties.
--highentropyva[+|-] Een verbeterde beveiligingsfunctie in- of uitschakelen voor randomisatie van de indeling van de adresruimte met hoge entropie (ASLR). Het besturingssysteem randomiseert de locaties in het geheugen waar infrastructuur voor toepassingen (zoals de stack en heap) wordt geladen. Als u deze optie inschakelt, kunnen besturingssystemen deze randomisatie gebruiken om de volledige 64-bits adresruimte op een 64-bits computer te gebruiken.
--keycontainer:key-container-name Hiermee geeft u een sterke naam sleutelcontainer.
--keyfile:filename Hiermee geeft u de naam van een openbare-sleutelbestand voor het ondertekenen van de gegenereerde assembly.
--lib:folder-name

-I:folder-name
Hiermee geeft u een map die moet worden gezocht naar assembly's waarnaar wordt verwezen.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /lib (C# Compiler Options)voor meer informatie.
--linkresource:resource-info Hiermee koppelt u een opgegeven resource aan de assembly. De indeling van resourcegegevens is filename[name[public|private]]

Het koppelen van één resource met deze optie is een alternatief voor het insluiten van een volledig resourcebestand met de --resource optie.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /linkresource (C#-compileropties) voor meer informatie.
--mlcompatibility Hiermee worden waarschuwingen genegeerd die worden weergegeven wanneer u functies gebruikt die zijn ontworpen voor compatibiliteit met andere versies van ML.
--noframework Hiermee wordt de standaardreferentie naar de .NET Framework-assembly uitgeschakeld.
--nointerfacedata Hiermee wordt de compiler geïnstrueerd om de resource weg te laten die deze normaal gesproken toevoegt aan een assembly die F#-specifieke metagegevens bevat.
--nologo De bannertekst wordt niet weergegeven bij het starten van de compiler.
--nooptimizationdata Hiermee wordt de compiler geïnstrueerd om alleen optimalisatie essentieel voor het implementeren van inline-constructies op te nemen. Remt de inlining van meerdere modules, maar verbetert de binaire compatibiliteit.
--nowin32manifest Hiermee wordt de compiler geïnstrueerd om het standaard Win32-manifest weg te laten.
--nowarn:warning-number-list Hiermee schakelt u specifieke waarschuwingen uit die worden vermeld op getal. Scheid elk waarschuwingsnummer door een komma. U kunt het waarschuwingsnummer voor elke waarschuwing uit de compilatie-uitvoer detecteren.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /nowarn (C#-compileropties) voor meer informatie.
--optimize[+|-] [optimization-option-list]

-O[+|-] [optimization-option-list]
Hiermee schakelt u optimalisaties in of uit. Sommige optimalisatieopties kunnen selectief worden uitgeschakeld of ingeschakeld door ze te vermelden. Dit zijn: nojitoptimize, nojittracking, nolocaloptimize, , nocrossoptimize. notailcalls
--out:output-filename

-o:output-filename
Hiermee geeft u de naam van de gecompileerde assembly of module.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /out (C#-compileropties) voor meer informatie.
--pathmap:path=sourcePath,... Hiermee geeft u op hoe fysieke paden worden toegewezen aan bronpadnamen die door de compiler worden uitgevoerd.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /pathmap (C#-compileropties) voor meer informatie.
--pdb:pdb-filename Noemt het PDB-bestand (programmadatabasebestand) voor uitvoerdebug. Deze optie is alleen van toepassing wanneer --debug deze ook is ingeschakeld.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /pdb (C#-compileropties) voor meer informatie.
--platform:platform-name Hiermee geeft u op dat de gegenereerde code alleen wordt uitgevoerd op het opgegeven platform (x86, Itaniumof x64) of, als de platformnaam anycpu is gekozen, geeft u op dat de gegenereerde code op elk platform kan worden uitgevoerd.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /platform (C#-compileropties) voor meer informatie.
--preferreduilang:lang Hiermee geeft u de naam van de voorkeurstaalcultuur (bijvoorbeeld es-ES, ja-JP).
--quotations-debug Hiermee geeft u op dat er extra foutopsporingsgegevens moeten worden verzonden voor expressies die zijn afgeleid van letterlijke F#-aanhalingstekens en definities. De foutopsporingsgegevens worden toegevoegd aan de aangepaste kenmerken van een F#-expressiestructuurknooppunt. Zie Codecitaten en Expr.CustomAttributes.
--reference:assembly-filename

-r:assembly-filename
Maakt code van een F# of .NET Framework-assembly beschikbaar voor de code die wordt gecompileerd.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /reference (C#-compileropties) voor meer informatie.
--resource:resource-filename Hiermee wordt een beheerd resourcebestand ingesloten in de gegenereerde assembly.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /resource (C#-compileropties) voor meer informatie.
--sig:signature-filename Hiermee wordt een handtekeningbestand gegenereerd op basis van de gegenereerde assembly. Zie Handtekeningen voor meer informatie over handtekeningbestanden.
--simpleresolution Hiermee geeft u op dat assemblyverwijzingen moeten worden omgezet met behulp van monoregels op basis van mappen in plaats van MSBuild-resolutie. De standaardinstelling is om MSBuild-resolutie te gebruiken, behalve wanneer deze wordt uitgevoerd onder Mono.
--standalone Hiermee geeft u een assembly op die alle afhankelijkheden bevat, zodat deze zelfstandig wordt uitgevoerd zonder dat er extra assembly's nodig zijn, zoals de F#-bibliotheek.
--staticlink:assembly-name Koppelt de opgegeven assembly statisch en alle dll's waarnaar wordt verwezen die afhankelijk zijn van deze assembly. Gebruik de assemblynaam, niet de DLL-naam.
--subsystemversion Hiermee geeft u de versie van het subsysteem van het besturingssysteem moet worden gebruikt door het gegenereerde uitvoerbare bestand. Gebruik 6.02 voor Windows 8.1, 6.01 voor Windows 7, 6.00 voor Windows Vista. Deze optie is alleen van toepassing op uitvoerbare bestanden, niet DLL's en hoeft alleen te worden gebruikt als uw toepassing afhankelijk is van specifieke beveiligingsfuncties die alleen beschikbaar zijn voor bepaalde versies van het besturingssysteem. Als deze optie wordt gebruikt en een gebruiker probeert uw toepassing uit te voeren op een lagere versie van het besturingssysteem, mislukt deze met een foutbericht.
--tailcalls[+|-] Hiermee schakelt u het gebruik van de tail IL-instructie in of uit, waardoor het stackframe opnieuw wordt gebruikt voor recursieve staartfuncties. Deze optie is standaard ingeschakeld.
--target:[exe|winexe|library|module] filename Hiermee geeft u het type en de bestandsnaam van de gegenereerde gecompileerde code.
  • exe betekent een consoletoepassing.
  • winexe betekent een Windows-toepassing, die verschilt van de consoletoepassing omdat er geen standaardinvoer-/uitvoerstreams (stdin, stdout en stderr) zijn gedefinieerd.
  • library is een assembly zonder ingangspunt.
  • module is een .NET Framework-module (.netmodule), die later kan worden gecombineerd met andere modules in een assembly.
--times Geeft tijdsinformatie weer voor compilatie.
--utf8output Hiermee schakelt u de uitvoer van de compiler voor afdrukken in de UTF-8-codering in.
--warn:warning-level Hiermee stelt u een waarschuwingsniveau in (0 tot 5). Het standaardniveau is 3. Elke waarschuwing krijgt een niveau op basis van de ernst. Niveau 5 geeft meer, maar minder ernstige waarschuwingen dan niveau 1.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /warn (C#-compileropties) voor meer informatie.
--warnon:warning-number-list Schakel specifieke waarschuwingen in die standaard kunnen worden uitgeschakeld of uitgeschakeld door een andere opdrachtregeloptie. De lijst is door komma's gescheiden.
--warnaserror[+|-] [warning-number-list] Hiermee kunt u de optie voor het rapporteren van waarschuwingen als fouten in- of uitschakelen. U kunt specifieke waarschuwingsnummers opgeven die moeten worden uitgeschakeld of ingeschakeld. Opties verderop in de opdrachtregel overschrijven opties eerder in de opdrachtregel. Als u bijvoorbeeld de waarschuwingen wilt opgeven die u niet wilt melden als fouten, geeft u op --warnaserror+--warnaserror-:warning-number-list.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /warnaserror (C#-compileropties) voor meer informatie.
--win32manifest:manifest-filename Hiermee voegt u een Win32-manifestbestand toe aan de compilatie. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /win32manifest (C# Compiler Options)voor meer informatie.
--win32res:resource-filename Hiermee voegt u een Win32-resourcebestand toe aan de compilatie.

Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /win32res (C#) Compiler Options)voor meer informatie.

Waarschuwingen voor aanmelden

De F#-compiler ondersteunt verschillende opt-in-waarschuwingen:

Aantal Samenvatting Niveau Beschrijving
21 Recursie gecontroleerd tijdens runtime 5 Waarschuwen wanneer een recursief gebruik wordt gecontroleerd op initialisatie-geluid tijdens runtime.
22 Bindingen die buiten de volgorde zijn uitgevoerd 5 Waarschuwen wanneer een recursieve binding buiten de volgorde kan worden uitgevoerd vanwege een doorstuurverwijzing.
52 Impliciete kopieën van structs 5 Waarschuwen wanneer een onveranderbare struct wordt gekopieerd om ervoor te zorgen dat het origineel niet wordt gedempt door een bewerking.
1178 Impliciete gelijkheid/vergelijking 5 Waarschuwen wanneer een F#-typedeclaratie impliciet wordt afgeleid of NoEqualityNoComparison als het kenmerk niet aanwezig is voor het type.
1182 Ongebruikte variabelen N.v.t. Waarschuwen voor ongebruikte variabelen.
3180 Impliciete heap-toewijzingen N.v.t. Waarschuwen wanneer een onveranderbaar lokaal impliciet wordt toegewezen als een verwijzingscel omdat deze is vastgelegd door een sluiting.
3366 Index notatie N.v.t. Waarschuwen wanneer de F# 5-index notatie expr.[idx] wordt gebruikt.
3517 InlineIfLambda-fout N.v.t. Waarschuwen wanneer de F#-optimalisatiefunctie een InlineIfLambda waarde niet inline kan uitvoeren, bijvoorbeeld als er een berekende functiewaarde is opgegeven in plaats van een expliciete lambda.
3387 op_Implicit Conversie N.v.t. Waarschuwen wanneer een impliciete .NET-conversie wordt gebruikt bij een methodeargument.
3388 Aanvullende impliciete upcast N.v.t. Waarschuwen wanneer een extra upcast impliciet wordt gebruikt, toegevoegd in F# 6.
3389 Impliciete widening N.v.t. Waarschuwen wanneer een impliciete numerieke widening wordt gebruikt.
3390 Ongeldige XML-documentopmerkingen N.v.t. Waarschuwen wanneer xml-documentenopmerkingen op verschillende manieren onjuist zijn ingedeeld.

U kunt deze waarschuwingen inschakelen met behulp van /warnon:NNNN of <WarnOn>NNNN</WarnOn> waar NNNN het relevante waarschuwingsnummer is. (U kunt ook de syntaxis <WarnOn>FSNNNN</WarnOn>gebruiken, bijvoorbeeld <WarnOn>FS3388</WarnOn>.) Houd er rekening mee dat als de WarnOn eigenschap meerdere keren is opgegeven, alleen het laatste exemplaar wordt gebruikt. Als u meerdere waarschuwingen wilt opgeven, geeft u de WarnOn eigenschap eenmaal op met een door komma's gescheiden tekenreeks als inhoud: <WarnOn>3388,3559</WarnOn>.

Title Beschrijving
Interactieve F#-opties Beschrijft opdrachtregelopties die worden ondersteund door de F#-interpreter, fsi.exe.
Naslaginformatie over projecteigenschappen Beschrijft de gebruikersinterface voor projecten, inclusief projecteigenschapspagina's die buildopties bieden.