Opzioni del compilatore
Questo articolo descrive le opzioni della riga di comando del compilatore per il compilatore F#. Il comando dotnet build
richiama il compilatore F# nei file di progetto F#. I file di progetto F# sono indicati con l'estensione .fsproj
.
L'ambiente di compilazione può anche essere controllato impostando le proprietà del progetto. Per i progetti destinati a .NET Core, la proprietà <OtherFlags>...</OtherFlags>
"Altri flag", in .fsproj
, viene usata per specificare opzioni aggiuntive della riga di comando.
Opzioni del compilatore elencate in ordine alfabetico
La tabella seguente mostra le opzioni del compilatore elencate in ordine alfabetico. Alcune delle opzioni del compilatore F# sono simili alle opzioni del compilatore C#. In tal caso, viene fornito un collegamento all'argomento opzioni del compilatore C#.
Opzione del compilatore | Descrizione |
---|---|
--allsigs |
Genera un nuovo file di firma (o rigenera un file di firma esistente) per ogni file di origine nella compilazione. Per altre informazioni sui file di firma, vedere Firme. |
-a filename.fs |
Genera una libreria dal file specificato. Questa opzione è una forma breve di --target:library filename.fs . |
--baseaddress:address |
Specifica l'indirizzo di base preferenziale in cui caricare una DLL. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /baseaddress (Opzioni del compilatore C#). |
--codepage:id |
Specifica la tabella codici da usare durante la compilazione se la pagina richiesta non è la tabella codici predefinita corrente per il sistema. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /code pages (opzioni del compilatore C#). |
--consolecolors |
Specifica che gli errori e gli avvisi usano testo codificato a colori nella console. |
--crossoptimize[+ or -] |
Abilita o disabilita le ottimizzazioni tra moduli. |
--delaysign[+|-] |
Ritarda la firma dell'assembly usando solo la parte pubblica della chiave con nome sicuro. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /delaysign (Opzioni del compilatore C#). |
--checked[+|-] |
Abilita o disabilita la generazione di controlli di overflow. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /checked (Opzioni del compilatore C#). |
--debug[+|-] -g[+|-] --debug:[full|pdbonly] -g: [full|pdbonly] |
Abilita o disabilita la generazione di informazioni di debug oppure specifica il tipo di informazioni di debug da generare. Il valore predefinito è full , che consente il collegamento a un programma in esecuzione. Scegliere pdbonly di ottenere informazioni di debug limitate archiviate in un file pdb (database di programma).Equivale all'opzione del compilatore C# con lo stesso nome. Per ulteriori informazioni, vedere, /debug (opzioni del compilatore C#). |
--define:symbol -d:symbol |
Definisce un simbolo da utilizzare nella compilazione condizionale. |
--deterministic[+|-] |
Produce un assembly deterministico ,incluso il GUID della versione del modulo e il timestamp. Questa opzione non può essere usata con numeri di versione con caratteri jolly e supporta solo i tipi di debug incorporati e portabili |
--doc:xmldoc-filename |
Indica al compilatore di generare commenti della documentazione XML nel file specificato. Per altre informazioni, vedere XML Documentation. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /doc (Opzioni del compilatore C#). |
--fullpaths |
Indica al compilatore di generare percorsi completi. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /fullpaths (Opzioni del compilatore C#). |
--help -? |
Visualizza le informazioni sull'utilizzo, inclusa una breve descrizione di tutte le opzioni del compilatore. |
--highentropyva[+|-] |
Abilitare o disabilitare la randomizzazione casuale dello spazio degli indirizzi ad alta entropia (ASLR), una funzionalità di sicurezza avanzata. Il sistema operativo randomizza le posizioni in memoria in cui vengono caricati l'infrastruttura per le applicazioni, ad esempio lo stack e l'heap. Se si abilita questa opzione, i sistemi operativi possono usare questa randomizzazione per usare lo spazio di indirizzi a 64 bit completo in un computer a 64 bit. |
--keycontainer:key-container-name |
Specifica un contenitore di chiavi con nome sicuro. |
--keyfile:filename |
Specifica il nome di un file di chiave pubblica per la firma dell'assembly generato. |
--lib:folder-name -I:folder-name |
Specifica una directory in cui cercare gli assembly a cui viene fatto riferimento. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /lib (Opzioni del compilatore C#). |
--linkresource:resource-info |
Collega una risorsa specificata all'assembly. Il formato delle informazioni sulle risorse è filename[name[public|private]] Il collegamento di una singola risorsa con questa opzione è un'alternativa all'incorporamento di un intero file di risorse con l'opzione --resource .Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /linkresource (Opzioni del compilatore C#). |
--mlcompatibility |
Ignora gli avvisi visualizzati quando si usano funzionalità progettate per la compatibilità con altre versioni di ML. |
--noframework |
Disabilita il riferimento predefinito all'assembly .NET Framework. |
--nointerfacedata |
Indica al compilatore di omettere la risorsa che in genere aggiunge a un assembly che include metadati specifici di F#. |
--nologo |
Non visualizza il testo del banner quando si avvia il compilatore. |
--nooptimizationdata |
Indica al compilatore di includere solo l'ottimizzazione essenziale per l'implementazione di costrutti inlined. Impedisce l'inlining tra moduli, ma migliora la compatibilità binaria. |
--nowin32manifest |
Indica al compilatore di omettere il manifesto Win32 predefinito. |
--nowarn:warning-number-list |
Disabilita gli avvisi specifici elencati in base al numero. Separare ogni numero di avviso in base a una virgola. È possibile individuare il numero di avviso per qualsiasi avviso dell'output di compilazione. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /nowarn (Opzioni del compilatore C#). |
--optimize[+|-] [optimization-option-list] -O[+|-] [optimization-option-list] |
Abilita o disabilita le ottimizzazioni. Alcune opzioni di ottimizzazione possono essere disabilitate o abilitate in modo selettivo elencandole. Si tratta di: nojitoptimize , nolocaloptimize nojittracking , , nocrossoptimize , . notailcalls |
--out:output-filename -o:output-filename |
Specifica il nome dell'assembly o del modulo compilato. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /out (Opzioni del compilatore C#). |
--pathmap:path=sourcePath,... |
Specifica come eseguire il mapping di percorsi fisici ai nomi di percorso di origine restituiti dal compilatore. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /pathmap (opzioni del compilatore C#). |
--pdb:pdb-filename |
Assegna un nome al file PDB di debug di output (database di programma). Questa opzione si applica solo quando --debug è abilitata anche.Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /pdb (opzioni del compilatore C#). |
--platform:platform-name |
Specifica che il codice generato verrà eseguito solo nella piattaforma specificata (x86 , Itanium o x64 ) oppure, se si seleziona il nome anycpu della piattaforma, specifica che il codice generato può essere eseguito in qualsiasi piattaforma.Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /platform (Opzioni del compilatore C#). |
--preferreduilang:lang |
Specifica il nome delle impostazioni cultura della lingua di output preferito, es-ES ad esempio , ja-JP . |
--quotations-debug |
Specifica che devono essere generate informazioni di debug aggiuntive per le espressioni derivate dai valori letterali delle virgolette F# e dalle definizioni riflesse. Le informazioni di debug verranno aggiunte agli attributi personalizzati di un nodo dell'albero delle espressioni F#. Vedere Virgolette di codice ed Expr.CustomAttributes. |
--reference:assembly-filename -r:assembly-filename |
Rende disponibile il codice da un assembly F# o .NET Framework per il codice da compilare. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /reference (Opzioni del compilatore C#). |
--resource:resource-filename |
Incorpora un file di risorse gestite nell'assembly generato. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /resource (Opzioni del compilatore C#). |
--sig:signature-filename |
Genera un file di firma basato sull'assembly generato. Per altre informazioni sui file di firma, vedere Firme. |
--simpleresolution |
Specifica che i riferimenti agli assembly devono essere risolti usando regole Mono basate su directory anziché la risoluzione MSBuild. L'impostazione predefinita consiste nell'usare la risoluzione MSBuild, ad eccezione dell'esecuzione in Mono. |
--standalone |
Specifica di produrre un assembly contenente tutte le relative dipendenze in modo che venga eseguito da solo senza la necessità di assembly aggiuntivi, ad esempio la libreria F#. |
--staticlink:assembly-name |
Collega in modo statico l'assembly specificato e tutte le DLL a cui si fa riferimento che dipendono da questo assembly. Usare il nome dell'assembly, non il nome della DLL. |
--subsystemversion |
Specifica la versione del sottosistema del sistema operativo da usare per l'eseguibile generato. Usare la versione 6.02 per Windows 8.1, 6.01 per Windows 7, 6.00 per Windows Vista. Questa opzione si applica solo ai file eseguibili, non alle DLL e deve essere usata solo se l'applicazione dipende da funzionalità di sicurezza specifiche disponibili solo in determinate versioni del sistema operativo. Se questa opzione viene usata e un utente tenta di eseguire l'applicazione in una versione precedente del sistema operativo, avrà esito negativo con un messaggio di errore. |
--tailcalls[+|-] |
Abilita o disabilita l'uso dell'istruzione tail IL, che fa sì che lo stack frame venga riutilizzato per le funzioni ricorsive della coda. Per impostazione predefinita, questa opzione è attivata. |
--target:[exe|winexe|library|module] filename |
Specifica il tipo e il nome file del codice compilato generato.
|
--times |
Visualizza le informazioni sulla tempistica per la compilazione. |
--utf8output |
Abilita l'output del compilatore di stampa nella codifica UTF-8. |
--warn:warning-level |
Imposta un livello di avviso (da 0 a 5). Il livello predefinito è 3. A ogni avviso viene assegnato un livello in base alla relativa gravità. Il livello 5 offre più avvisi, ma meno gravi rispetto al livello 1. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /warn (Opzioni del compilatore C#). |
--warnon:warning-number-list |
Abilitare avvisi specifici che potrebbero essere disattivati per impostazione predefinita o disabilitati da un'altra opzione della riga di comando. L'elenco è delimitato da virgole. |
--warnaserror[+|-] [warning-number-list] |
Abilita o disabilita l'opzione per segnalare gli avvisi come errori. È possibile specificare numeri di avviso specifici da disabilitare o abilitare. Le opzioni più avanti nella riga di comando sostituiscono le opzioni in precedenza nella riga di comando. Ad esempio, per specificare gli avvisi che non si desidera segnalare come errori, specificare --warnaserror+ --warnaserror-:warning-number-list .Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /warnaserror (Opzioni del compilatore C#). |
--win32manifest:manifest-filename |
Aggiunge un file manifesto Win32 alla compilazione. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /win32manifest (opzioni del compilatore C#). |
--win32res:resource-filename |
Aggiunge un file di risorse Win32 alla compilazione. Questa opzione del compilatore equivale all'opzione del compilatore C# con lo stesso nome. Per altre informazioni, vedere /win32res ((C#) Compiler Options). |
Avvisi di consenso esplicito
Il compilatore F# supporta diversi avvisi di consenso esplicito:
Numero | Riepilogo | Livello | Descrizione |
---|---|---|---|
21 | Ricorsione verificata in fase di esecuzione | 5 | Avvisa quando viene controllato un utilizzo ricorsivo per l'inizializzazione del suono in fase di esecuzione. |
22 | Binding eseguiti non in ordine | 5 | Avvisa quando un'associazione ricorsiva può essere eseguita in ordine non ordinato a causa di un riferimento in avanti. |
52 | Copie implicite di struct | 5 | Avvisa quando viene copiato uno struct non modificabile per assicurarsi che l'originale non venga modificato da un'operazione. |
1178 | Uguaglianza/confronto implicito | 5 | Avvisa quando una dichiarazione di tipo F# viene dedotta in modo implicito come NoEquality o NoComparison ma l'attributo non è presente nel tipo. |
1182 | Variabili inutilizzate | n/d | Avvisare per le variabili inutilizzate. |
3180 | Allocazioni di heap implicite | n/d | Avvisa quando un locale modificabile viene allocato in modo implicito come cella di riferimento perché è stato acquisito da una chiusura. |
3366 | Notazione dell'indice | n/d | Avvisa quando viene usata la notazione expr.[idx] dell'indice F# 5. |
3517 | Errore InlineIfLambda | n/d | Avvisa quando l'utilità di ottimizzazione F# non riesce a inline un InlineIfLambda valore, ad esempio se è stato specificato un valore di funzione calcolata anziché un'espressione lambda esplicita. |
3387 | op_Implicit conversione |
n/d | Avvisa quando viene usata una conversione implicita .NET in corrispondenza di un argomento del metodo. |
3388 | Upcast implicito aggiuntivo | n/d | Avvisa quando viene usato in modo implicito un upcast aggiuntivo, aggiunto in F# 6. |
3389 | Ampliamento implicito | n/d | Avvisa quando viene usata un'estensione numerica implicita. |
3390 | Commenti della documentazione XML in formato non valido | n/d | Avvisa quando i commenti della documentazione XML sono in formato non valido in vari modi. |
È possibile abilitare questi avvisi usando /warnon:NNNN
o <WarnOn>NNNN</WarnOn>
dove NNNN
è il numero di avviso pertinente.
È anche possibile usare la sintassi <WarnOn>FSNNNN</WarnOn>
, ad esempio <WarnOn>FS3388</WarnOn>
. Si noti che se la WarnOn
proprietà viene specificata più volte, viene utilizzata solo l'ultima occorrenza. Per specificare più avvisi, specificare la WarnOn
proprietà una sola volta con una stringa delimitata da virgole come contenuto: <WarnOn>3388,3559</WarnOn>
.
Articoli correlati
Posizione | Descrizione |
---|---|
Opzioni di F# Interactive | Vengono descritte le opzioni della riga di comando supportate dall'interprete F# fsi.exe. |
Riferimenti alle proprietà di progetto | Descrive l'interfaccia utente per i progetti, incluse le pagine delle proprietà del progetto che forniscono opzioni di compilazione. |