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, Itaniumou 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é.
  • exe signifie une application console.
  • winexe signifie une application Windows, qui diffère de l’application console par le fait qu’elle n’a pas de flux d’entrée/sortie standard (stdin, stdout et stderr) définis.
  • library est un assembly sans point d’entrée.
  • module est un module .NET Framework (.netmodule), qui peut être combiné ultérieurement avec d’autres modules dans un assembly.
--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>.

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.