Dela via


Kompilatoralternativ

I den här artikeln beskrivs kommandoradsalternativ för kompilatorn f#. Kommandot dotnet build anropar F#-kompilatorn på F#-projektfiler. F#-projektfiler noteras med .fsproj tillägget.

Kompileringsmiljön kan också styras genom att ange projektegenskaperna. För projekt som riktar sig till .NET Core används egenskapen <OtherFlags>...</OtherFlags> "Andra flaggor" i , .fsprojför att ange extra kommandoradsalternativ.

Kompilatoralternativ listade alfabetiskt

I följande tabell visas kompilatoralternativ i alfabetisk ordning. Vissa av F#-kompilatoralternativen liknar C#-kompilatoralternativen. I så fall tillhandahålls en länk till avsnittet C#-kompilatoralternativ.

Kompilatoralternativ beskrivning
--allsigs Genererar en ny (eller återskapar en befintlig) signaturfil för varje källfil i kompileringsfilen. Mer information om signaturfiler finns i Signaturer.
-a filename.fs Genererar ett bibliotek från den angivna filen. Det här alternativet är en kort form av --target:library filename.fs.
--baseaddress:address Anger den primära basadress där en DLL ska läsas in.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /baseaddress (C#-kompilatoralternativ).
--codepage:id Anger vilken kodsida som ska användas under kompileringen om den obligatoriska sidan inte är systemets aktuella standardkodsida.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /code pages (C#Compiler Options).
--consolecolors Anger att fel och varningar använder färgkodad text i konsolen.
--crossoptimize[+ or -] Aktiverar eller inaktiverar optimeringar mellan moduler.
--delaysign[+|-] Fördröjning signerar sammansättningen med endast den offentliga delen av den starka namnnyckeln.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /delaysign (C#-kompilatoralternativ).
--checked[+|-] Aktiverar eller inaktiverar genereringen av spillkontroller.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /checked (C#Compiler Options).
--debug[+|-]

-g[+|-]

--debug:[full|pdbonly]

-g: [full|pdbonly]
Aktiverar eller inaktiverar genereringen av felsökningsinformation, eller anger vilken typ av felsökningsinformation som ska genereras. Standardvärdet är full, vilket gör det möjligt att ansluta till ett program som körs. Välj pdbonly att hämta begränsad felsökningsinformation som lagras i en pdb-fil (programdatabas).

Motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i

/debug (C#-kompilatoralternativ).
--define:symbol

-d:symbol
Definierar en symbol för användning i villkorlig kompilering.
--deterministic[+|-] Skapar en deterministisk sammansättning (inklusive modulversionens GUID och tidsstämpel). Det här alternativet kan inte användas med jokerteckenversionsnummer och stöder endast inbäddade och bärbara felsökningstyper
--doc:xmldoc-filename Instruerar kompilatorn att generera XML-dokumentationskommentarer till den angivna filen. Mer information finns i XML-dokumentationen.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /doc (C#-kompilatoralternativ).
--fullpaths Instruerar kompilatorn att generera fullständigt kvalificerade sökvägar.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /fullpaths (C#-kompilatoralternativ).
--help

-?
Visar användningsinformation, inklusive en kort beskrivning av alla kompilatoralternativ.
--highentropyva[+|-] Aktivera eller inaktivera slumpmässig layout för hög entropiadressutrymme (ASLR), en förbättrad säkerhetsfunktion. Operativsystemet randomiserar de platser i minnet där infrastrukturen för program (till exempel stacken och heapen) läses in. Om du aktiverar det här alternativet kan operativsystem använda den här slumpmässigheten för att använda hela 64-bitars adressutrymmet på en 64-bitars dator.
--keycontainer:key-container-name Anger en stark namnnyckelcontainer.
--keyfile:filename Anger namnet på en offentlig nyckelfil för signering av den genererade sammansättningen.
--lib:folder-name

-I:folder-name
Anger en katalog som ska sökas efter sammansättningar som refereras till.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /lib (C#-kompilatoralternativ).
--linkresource:resource-info Länkar en angiven resurs till sammansättningen. Formatet för resursinformation är filename[name[public|private]]

Att länka en enskild resurs med det här alternativet är ett alternativ till att bädda in en hel resursfil med alternativet --resource .

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /linkresource (C#-kompilatoralternativ).
--mlcompatibility Ignorerar varningar som visas när du använder funktioner som är utformade för kompatibilitet med andra versioner av ML.
--noframework Inaktiverar standardreferensen till .NET Framework-sammansättningen.
--nointerfacedata Instruerar kompilatorn att utelämna den resurs som den normalt lägger till i en sammansättning som innehåller F#-specifika metadata.
--nologo Visar inte banderollstexten när kompilatorn startas.
--nooptimizationdata Instruerar kompilatorn att endast inkludera optimering som är nödvändig för att implementera inlindade konstruktioner. Hämmar inlinning mellan moduler men förbättrar binär kompatibilitet.
--nowin32manifest Instruerar kompilatorn att utelämna standardmanifestet för Win32.
--nowarn:warning-number-list Inaktiverar specifika varningar som anges efter nummer. Avgränsa varje varningsnummer med ett kommatecken. Du kan identifiera varningsnumret för alla varningar från kompileringsutdata.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /nowarn (C#-kompilatoralternativ).
--optimize[+|-] [optimization-option-list]

-O[+|-] [optimization-option-list]
Aktiverar eller inaktiverar optimeringar. Vissa optimeringsalternativ kan inaktiveras eller aktiveras selektivt genom att visa dem. Dessa är: nojitoptimize, nojittracking, nolocaloptimize, nocrossoptimize, notailcalls.
--out:output-filename

-o:output-filename
Anger namnet på den kompilerade sammansättningen eller modulen.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /out (C#Compiler Options).
--pathmap:path=sourcePath,... Anger hur du mappar fysiska sökvägar till källsökvägsnamn som utdata från kompilatorn.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /pathmap (C#Compiler Options).
--pdb:pdb-filename Namnger pdb-filen för utdatafelsökning (programdatabas). Det här alternativet gäller endast när --debug är också aktiverat.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /pdb (C#-kompilatoralternativ).
--platform:platform-name Anger att den genererade koden endast ska köras på den angivna plattformen (x86, Itanium, eller x64), eller, om plattformsnamnet anycpu väljs, anger att den genererade koden kan köras på valfri plattform.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /platform (C#Compiler Options).
--preferreduilang:lang Anger det önskade språkkulturnamnet för utdata (till exempel es-ES, ja-JP).
--quotations-debug Anger att extra felsökningsinformation ska genereras för uttryck som härleds från F#-citatliteraler och reflekterade definitioner. Felsökningsinformationen läggs till i de anpassade attributen för en trädnod för F#-uttryck. Se Kodofferter och Expr.CustomAttributes.
--reference:assembly-filename

-r:assembly-filename
Gör kod från en F#- eller .NET Framework-sammansättning tillgänglig för koden som kompileras.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /reference (C#Compiler Options).
--resource:resource-filename Bäddar in en hanterad resursfil i den genererade sammansättningen.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /resource (C#Compiler Options).
--sig:signature-filename Genererar en signaturfil baserat på den genererade sammansättningen. Mer information om signaturfiler finns i Signaturer.
--simpleresolution Anger att sammansättningsreferenser ska matchas med hjälp av katalogbaserade monoregler i stället för MSBuild-upplösning. Standardvärdet är att använda MSBuild-upplösning förutom när du kör under Mono.
--standalone Anger för att skapa en sammansättning som innehåller alla dess beroenden så att den körs av sig själv utan behov av ytterligare sammansättningar, till exempel F#-biblioteket.
--staticlink:assembly-name Länkar statiskt den angivna sammansättningen och alla refererade DLL:er som är beroende av den här sammansättningen. Använd sammansättningsnamnet, inte DLL-namnet.
--subsystemversion Anger vilken version av os-undersystemet som ska användas av den genererade körbara filen. Använd 6.02 för Windows 8.1, 6.01 för Windows 7, 6.00 för Windows Vista. Det här alternativet gäller endast körbara filer, inte DLL:er, och behöver bara användas om ditt program är beroende av specifika säkerhetsfunktioner som endast är tillgängliga för vissa versioner av operativsystemet. Om det här alternativet används och en användare försöker köra programmet på en lägre version av operativsystemet misslyckas det med ett felmeddelande.
--tailcalls[+|-] Aktiverar eller inaktiverar användningen av tail IL-instruktionen, vilket gör att stackramen återanvänds för rekursiva tail-funktioner. Det här alternativet är aktiverat som standard.
--target:[exe|winexe|library|module] filename Anger typ och filnamn för den genererade kompilerade koden.
  • exe innebär ett konsolprogram.
  • winexe innebär ett Windows-program som skiljer sig från konsolprogrammet eftersom standardindata-/utdataströmmar (stdin, stdout och stderr) inte har definierats.
  • library är en sammansättning utan startpunkt.
  • module är en .NET Framework-modul (.netmodule), som senare kan kombineras med andra moduler i en sammansättning.
--times Visar tidsinformation för kompilering.
--utf8output Aktiverar utskrift av kompilatorutdata i UTF-8-kodningen.
--warn:warning-level Anger en varningsnivå (0 till 5). Standardnivån är 3. Varje varning ges en nivå baserat på dess allvarlighetsgrad. Nivå 5 ger fler, men mindre allvarliga, varningar än nivå 1.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /warn (C#Compiler Options).
--warnon:warning-number-list Aktivera specifika varningar som kan vara inaktiverade som standard eller inaktiverade av ett annat kommandoradsalternativ. Listan är kommaavgränsad.
--warnaserror[+|-] [warning-number-list] Aktiverar eller inaktiverar alternativet att rapportera varningar som fel. Du kan ange specifika varningsnummer som ska inaktiveras eller aktiveras. Alternativ senare i alternativen för åsidosättning av kommandoraden tidigare på kommandoraden. Om du till exempel vill ange de varningar som du inte vill ska rapporteras som fel anger du --warnaserror+ --warnaserror-:warning-number-list.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /warnaserror (C#-kompilatoralternativ).
--win32manifest:manifest-filename Lägger till en Win32-manifestfil i kompileringsfilen. Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /win32manifest (C#-kompilatoralternativ).
--win32res:resource-filename Lägger till en Win32-resursfil i kompileringsfilen.

Det här kompilatoralternativet motsvarar C#-kompilatoralternativet med samma namn. Mer information finns i /win32res ((C#) Compiler Options).

Opt-in-varningar

F#-kompilatorn stöder flera opt-in-varningar:

Antal Sammanfattning Nivå beskrivning
21 Rekursionen kontrolleras vid körning 5 Varna när en rekursiv användning kontrolleras för initieringsljud vid körning.
22 Bindningar som körs i ordning 5 Varna när en rekursiv bindning kan köras i oordning på grund av en referens för vidarebefordran.
52 Implicita kopior av structs 5 Varna när en oföränderlig struct kopieras för att säkerställa att originalet inte muteras av en åtgärd.
1178 Implicit likhet/jämförelse 5 Varna när en F#-typdeklaration implicit härleds NoEquality till eller NoComparison men attributet inte finns på typen.
1182 Oanvända variabler saknas Varna för oanvända variabler.
3180 Implicita heap-allokeringar saknas Varna när en föränderlig lokal implicit allokeras som en referenscell eftersom den har fångats upp av en stängning.
3366 Index notation saknas Varna när index notationen expr.[idx] F# 5 används.
3517 InlineIfLambda-fel saknas Varna när F#-optimeraren inte kan infoga ett InlineIfLambda värde, till exempel om ett beräknat funktionsvärde har angetts i stället för en explicit lambda.
3387 op_Implicit omvandling saknas Varna när en implicit .NET-konvertering används vid ett metodargument.
3388 Ytterligare implicit upcast saknas Varna när ytterligare en uppsändning implicit används, som läggs till i F# 6.
3389 Implicit breddning saknas Varna när en implicit numerisk breddning används.
3390 Felaktiga XML-dokumentkommenteringar saknas Varna när XML-dokumentkommentarna är felformerade på olika sätt.

Du kan aktivera dessa varningar med hjälp /warnon:NNNN av eller <WarnOn>NNNN</WarnOn> var NNNN är relevant varningsnummer. (Du kan också använda syntaxen <WarnOn>FSNNNN</WarnOn>, t.ex. <WarnOn>FS3388</WarnOn>.) Observera att om egenskapen WarnOn anges flera gånger används endast den senaste förekomsten. Om du vill ange flera varningar anger du WarnOn egenskapen en gång med en kommaavgränsad sträng som dess innehåll: <WarnOn>3388,3559</WarnOn>.

Title Description
Interaktiva F#-alternativ Beskriver kommandoradsalternativ som stöds av F#-tolken fsi.exe.
Referens för projektegenskaper Beskriver användargränssnittet för projekt, inklusive projektegenskapssidor som tillhandahåller byggalternativ.