Options du compilateur
Cet article décrit les options de ligne de commande du compilateur F#. La commande dotnet build
appelle le compilateur F# sur les fichiers projet F#. Les fichiers projet F# sont notés avec l’extension .fsproj
.
L’environnement de compilation peut également être contrôlé en définissant les propriétés du projet. Pour les projets ciblant .NET Core, la propriété « Autres indicateurs », <OtherFlags>...</OtherFlags>
dans .fsproj
, est utilisée pour spécifier des options de ligne de commande supplémentaires.
Options du compilateur classées par ordre alphabétique
Le tableau suivant présente les options du compilateur répertoriées par ordre alphabétique. Certaines des options du compilateur F# sont similaires aux options du compilateur C#. Si c’est le cas, un lien vers la rubrique options du compilateur C# est fourni.
Option du compilateur | Description |
---|---|
--allsigs |
Génère un nouveau fichier de signature (ou régénère un fichier de signature existant) pour chaque fichier source dans la compilation. Pour plus d’informations sur les fichiers de signature, consultez Signatures. |
-a filename.fs |
Génère une bibliothèque à partir du fichier spécifié. Cette option est une forme courte de --target:library filename.fs . |
--baseaddress:address |
Spécifie l'adresse de base préférée à laquelle charger une DLL. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /baseaddress (options du compilateur C#). |
--codepage:id |
Spécifie la page de codes à utiliser pendant la compilation si la page requise n’est pas la page de codes par défaut actuelle pour le système. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez l’article /code pages (options du compilateur C#). |
--consolecolors |
Spécifie que les erreurs et les avertissements utilisent du texte codé en couleur sur la console. |
--crossoptimize[+ or -] |
Active ou désactive les optimisations entre modules. |
--delaysign[+|-] |
Diffère la signature de l'assembly en utilisant uniquement la partie publique de la clé de nom fort. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez l’article /delaysign (C# Compiler Options) (/delaysign [Options du compilateur C#]). |
--checked[+|-] |
Active ou désactive la génération de vérifications de dépassement de capacité. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /checked (options du compilateur C#). |
--debug[+|-] -g[+|-] --debug:[full|pdbonly] -g: [full|pdbonly] |
Active ou désactive la génération d’informations de débogage, ou spécifie le type d’informations de débogage à générer. La valeur par défaut est full , ce qui permet l’attachement à un programme en cours d’exécution. Choisissez pdbonly pour obtenir des informations de débogage limitées stockées dans un fichier pdb (base de données du programme).Équivaut à l’option du compilateur C# du même nom. Pour plus d'informations, consultez la rubrique /debug (Options du compilateur C#). |
--define:symbol -d:symbol |
Définit un symbole à utiliser dans la compilation conditionnelle. |
--deterministic[+|-] |
Produit un assembly déterministe (y compris le GUID de version du module et le timestamp). Cette option ne peut pas être utilisée avec des numéros de version génériques et prend uniquement en charge les types de débogage incorporés et portables |
--doc:xmldoc-filename |
Indique au compilateur de générer des commentaires de documentation XML dans le fichier spécifié. Pour plus d’informations, consultez XML Documentation. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /doc (options du compilateur C#). |
--fullpaths |
Indique au compilateur de générer des chemins d’accès complets. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez l’article /fullpaths (C# Compiler Options) (/fullpaths [Options du compilateur C#]). |
--help -? |
Affiche les informations d’utilisation, y compris une brève description de toutes les options du compilateur. |
--highentropyva[+|-] |
Activez ou désactivez la randomisation de l’espace d’adressage haute entropie (ASLR), une fonctionnalité de sécurité améliorée. Le système d’exploitation randomise les emplacements dans la mémoire où l’infrastructure pour les applications (telles que la pile et le tas) est chargée. Si vous activez cette option, les systèmes d’exploitation peuvent utiliser cette randomisation pour utiliser l’espace d’adressage 64 bits complet sur un ordinateur 64 bits. |
--keycontainer:key-container-name |
Spécifie un conteneur de clé de nom fort. |
--keyfile:filename |
Spécifie le nom d’un fichier de clé publique pour la signature de l’assembly généré. |
--lib:folder-name -I:folder-name |
Spécifie un répertoire à rechercher pour les assemblys référencés. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez l’article /lib (C# Compiler Options) (/lib [Options du compilateur C#]). |
--linkresource:resource-info |
Lie une ressource spécifiée à l’assembly. Le format des informations sur les ressources est filename[name[public|private]] La liaison d’une ressource unique avec cette option est une alternative à l’incorporation d’un fichier de ressources entier avec l’option --resource .Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez l’article /linkresource (C# Compiler Options) (/linkresource [Options du compilateur C#]). |
--mlcompatibility |
Ignore les avertissements qui apparaissent lorsque vous utilisez des fonctionnalités conçues pour la compatibilité avec d’autres versions de ML. |
--noframework |
Désactive la référence par défaut à l’assembly .NET Framework. |
--nointerfacedata |
Indique au compilateur d’omettre la ressource qu’il ajoute normalement à un assembly qui inclut des métadonnées spécifiques à F#. |
--nologo |
N’affiche pas le texte de bannière lors du lancement du compilateur. |
--nooptimizationdata |
Indique au compilateur d’inclure uniquement l’optimisation essentielle pour l’implémentation de constructions inlined. Empêche l’inlining inter-modules, mais améliore la compatibilité binaire. |
--nowin32manifest |
Indique au compilateur d’omettre le manifeste Win32 par défaut. |
--nowarn:warning-number-list |
Désactive les avertissements spécifiques répertoriés par numéro. Séparez chaque numéro d’avertissement par une virgule. Vous pouvez découvrir le numéro d’avertissement pour n’importe quel avertissement à partir de la sortie de compilation. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /nowarn (options du compilateur C#). |
--optimize[+|-] [optimization-option-list] -O[+|-] [optimization-option-list] |
Active ou désactive les optimisations. Certaines options d’optimisation peuvent être désactivées ou activées de manière sélective en les listant. Il s’agit des options suivantes : nojitoptimize , nojittracking , nolocaloptimize , nocrossoptimize , notailcalls . |
--out:output-filename -o:output-filename |
Spécifie le nom de l’assembly ou du module compilé. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez l’article /out (C# Compiler Options) (/out [Options du compilateur C#]). |
--pathmap:path=sourcePath,... |
Valeur qui indique comment mapper les chemins d’accès physiques avec les noms de chemins d’accès sources générés en sortie par le compilateur. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /pathmap (options du compilateur C#). |
--pdb:pdb-filename |
Nomme le fichier PDB (base de données du programme) de débogage de sortie. Cette option s’applique uniquement quand --debug elle est également activée.Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /pdb (options du compilateur C#). |
--platform:platform-name |
Spécifie que le code généré s’exécutera uniquement sur la plateforme spécifiée (x86 , Itanium ou x64 ), ou, si le nom de plateforme anycpu est choisi, spécifie que le code généré peut s’exécuter sur n’importe quelle plateforme.Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /platform (options du compilateur C#). |
--preferreduilang:lang |
Spécifie le nom de culture du langage de sortie préféré (par exemple, es-ES , ja-JP ). |
--quotations-debug |
Spécifie que les informations de débogage supplémentaires doivent être émises pour les expressions dérivées de littéraux de quotations F# et les définitions reflétées. Les informations de débogage sont ajoutées aux attributs personnalisés d’un nœud d’arborescence de l’expression F#. Consultez Quotations de code et Expr.CustomAttributes. |
--reference:assembly-filename -r:assembly-filename |
Rend le code à partir d’un assembly F# ou .NET Framework disponible pour le code en cours de compilation. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez l’article /reference (C# Compiler Options) (/reference [Options du compilateur C#]). |
--resource:resource-filename |
Incorpore un fichier de ressource managée dans l’assembly généré. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez l’article /resource (C# Compiler Options) (/resource [Options du compilateur C#]). |
--sig:signature-filename |
Génère un fichier de signature basé sur l’assembly généré. Pour plus d’informations sur les fichiers de signature, consultez Signatures. |
--simpleresolution |
Spécifie que les références d’assembly doivent être résolues à l’aide de règles Mono basées sur un répertoire plutôt que de résolution MSBuild. La valeur par défaut consiste à utiliser la résolution MSBuild, sauf lors de l’exécution sous Mono. |
--standalone |
Spécifie de produire un assembly qui contient toutes ses dépendances afin qu’il s’exécute par lui-même sans avoir besoin d’assemblys supplémentaires, comme la bibliothèque F#. |
--staticlink:assembly-name |
Lie statiquement l’assembly donné et toutes les DLL référencées qui dépendent de cet assembly. Utilisez le nom de l’assembly, et non le nom de la DLL. |
--subsystemversion |
Spécifie la version du sous-système d’exploitation à utiliser par l’exécutable généré. Utilisez 6.02 pour Windows 8.1, 6.01 pour Windows 7, 6.00 pour Windows Vista. Cette option s’applique uniquement aux exécutables, et non aux DLL et ne doit être utilisée que si votre application dépend de fonctionnalités de sécurité spécifiques disponibles uniquement sur certaines versions du système d’exploitation. Si cette option est utilisée et si un utilisateur tente d’exécuter votre application sur une version inférieure du système d’exploitation, l’action échoue avec un message d’erreur. |
--tailcalls[+|-] |
Active ou désactive l’utilisation de l’instruction IL de fin, ce qui entraîne la réutilisation du frame de pile pour les fonctions récursives de fin. Cette option est activée par défaut. |
--target:[exe|winexe|library|module] filename |
Spécifie le type et le nom de fichier du code compilé généré.
|
--times |
Affiche des informations de minutage pour la compilation. |
--utf8output |
Active l’impression de la sortie du compilateur dans l’encodage UTF-8. |
--warn:warning-level |
Définit un niveau d’avertissement (0 à 5). Le niveau par défaut est 3. Chaque avertissement se voit attribuer un niveau en fonction de sa gravité. Le niveau 5 donne plus d’avertissements, mais moins graves, que le niveau 1. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /warn (options du compilateur C#). |
--warnon:warning-number-list |
Activez des avertissements spécifiques qui peuvent être désactivés par défaut ou par une autre option de ligne de commande. La liste est séparée par des virgules. |
--warnaserror[+|-] [warning-number-list] |
Active ou désactive l’option pour signaler des avertissements en tant qu’erreurs. Vous pouvez fournir des numéros d’avertissement spécifiques à désactiver ou à activer. Les options placées loin dans la ligne de commande écrasent les options placées plus près du début de la ligne de commande. Par exemple, pour spécifier les avertissements que vous ne souhaitez pas signaler en tant qu’erreurs, spécifiez --warnaserror+ --warnaserror-:warning-number-list .Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /warnaserror (options du compilateur C#). |
--win32manifest:manifest-filename |
Ajoute un fichier manifeste Win32 à la compilation. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /win32manifest (Options du compilateur C#). |
--win32res:resource-filename |
Ajoute un fichier de ressources Win32 à la compilation. Cette option de compilateur équivaut à l’option du compilateur C# du même nom. Pour plus d’informations, consultez /win32res (options du compilateur [C#]). |
Avertissements d’activation
Le compilateur F# prend en charge plusieurs avertissements d’activation :
Nombre | Résumé | Level | Description |
---|---|---|---|
21 | Récursivité vérifiée au moment de l’exécution | 5 | Avertir lorsqu’une utilisation récursive est vérifiée pour la solidité de l’initialisation au moment de l’exécution. |
22 | Liaisons exécutées dans le désordre | 5 | Avertir lorsqu’une liaison récursive peut être exécutée dans le désordre en raison d’une référence vers l’avant. |
52 | Copies implicites de structs | 5 | Avertir lorsqu’un struct immuable est copié pour s’assurer que l’original n’est pas muté par une opération. |
1178 | Égalité/comparaison implicite | 5 | Avertir lorsqu’une déclaration de type F# est implicitement déduite comme NoEquality ou NoComparison , mais que l’attribut n’est pas présent sur le type. |
1182 | Variables inutilisées | n/a | Avertir en cas de variables inutilisées. |
3180 | Allocations de tas implicites | n/a | Avertir lorsqu’un local mutable est implicitement alloué en tant que cellule de référence, car il a été capturé par une fermeture. |
3366 | Notation d’index | n/a | Avertir lorsque la notation d’index F# 5 expr.[idx] est utilisée. |
3517 | Échec InlineIfLambda | n/a | Avertir lorsque l’optimiseur F# ne parvient pas à inclure une valeur InlineIfLambda , par exemple si une valeur de fonction calculée a été fournie au lieu d’une expression lambda explicite. |
3387 | Conversion de op_Implicit |
n/a | Avertir lorsqu’une conversion implicite .NET est utilisée au niveau d’un argument de méthode. |
3388 | Upcast implicite supplémentaire | n/a | Avertir lorsqu’un upcast supplémentaire est implicitement utilisé, ajoutée dans F# 6. |
3389 | Élargissement implicite | n/a | Avertir lorsqu’un élargissement numérique implicite est utilisé. |
3390 | Commentaires de documents XML malformés | n/a | Avertir lorsque les commentaires de documents XML sont malformés de différentes manières. |
Vous pouvez activer ces avertissements à l’aide de <WarnOn>NNNN</WarnOn>
ou /warnon:NNNN
, où NNNN
est le numéro d’avertissement approprié.
(Vous pouvez également utiliser la syntaxe <WarnOn>FSNNNN</WarnOn>
, par exemple <WarnOn>FS3388</WarnOn>
.) Notez que si la propriété WarnOn
est spécifiée plusieurs fois, seule la dernière occurrence est utilisée. Pour spécifier plusieurs avertissements, fournissez une fois la propriété WarnOn
avec une chaîne séparée par des virgules comme contenu : <WarnOn>3388,3559</WarnOn>
.
Articles connexes
Intitulé | Description |
---|---|
Options F# Interactive | Décrit les options de ligne de commande prises en charge par l’interpréteur F#, fsi.exe. |
Informations de référence sur les propriétés de projet | Décrit l’interface utilisateur des projets, y compris les pages de propriétés de projet qui fournissent des options de génération. |