Opciones del compilador

En este tema se describen las opciones de línea de comandos del compilador de F#, fsc.exe.

El entorno de compilación también se puede controlar estableciendo las propiedades del proyecto. Para los proyectos que tienen como destino .NET Core, la propiedad "Otras marcas", en , se usa para especificar opciones de <OtherFlags>...</OtherFlags> .fsproj línea de comandos adicionales.

Opciones del compilador por orden alfabético

En la tabla siguiente se muestran las opciones del compilador enumeradas alfabéticamente. Algunas de las opciones del compilador de F# son similares a las opciones del compilador de C#. Si ese es el caso, se proporciona un vínculo al tema de opciones del compilador de C#.

Opción del compilador Descripción
-a filename.fs Genera una biblioteca a partir del archivo especificado. Esta opción es una forma corta de --target:library filename.fs .
--baseaddress:address Especifica la dirección base preferida para cargar una DLL.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/baseaddress (C# Compiler Options).
--codepage:id Especifica qué página de códigos se usará durante la compilación si la página necesaria no es la página de códigos predeterminada actual del sistema.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/páginas de códigos (C# Opciones del compilador).
--consolecolors Especifica que los errores y advertencias usan texto codificado por colores en la consola.
--crossoptimize[+|-] Habilita o deshabilita las optimizaciones entre módulos.
--delaysign[+|-] Retrasa la firma del ensamblado usando solo la parte pública de la clave de nombre segura.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/delaysign (C# Compiler Options).
--checked[+|-] Habilita o deshabilita la generación de comprobaciones de desbordamiento.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/activada (opciones del compilador# C).
--debug[+|-]

-g[+|-]

--debug:[full|pdbonly]

-g: [full|pdbonly]
Habilita o deshabilita la generación de información de depuración o especifica el tipo de información de depuración que se generará. El valor predeterminado es full , que permite adjuntar a un programa en ejecución. Elija pdbonly obtener información de depuración limitada almacenada en un archivo pdb (base de datos de programa).

Equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea

/depuración (opciones# compilador de C).
--define:symbol

-d:symbol
Define un símbolo para su uso en la compilación condicional.
--deterministic[+|-] Genera un ensamblado determinista (incluido el GUID de la versión del módulo y la marca de tiempo). Esta opción no se puede usar con números de versión con caracteres comodín y solo admite tipos de depuración insertados y portátiles.
--doc:xmldoc-filename Indica al compilador que genere comentarios de documentación XML en el archivo especificado. Para obtener más información, consulta XML Documentation.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/documento (C# Compiler Options).
--fullpaths Indica al compilador que genere rutas de acceso completas.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/rutas de acceso (C# Opciones del compilador).
--help

-?
Muestra información de uso, incluida una breve descripción de todas las opciones del compilador.
--highentropyva[+|-] Habilite o deshabilite la selección aleatoria del diseño de espacio de direcciones (ASLR) de alta entropía, una característica de seguridad mejorada. El sistema operativo aleatoriza las ubicaciones en memoria donde se carga la infraestructura de las aplicaciones (como la pila y el montón). Si habilita esta opción, los sistemas operativos pueden usar esta selección aleatoria para usar el espacio de direcciones de 64 bits completo en un equipo de 64 bits.
--keycontainer:key-container-name Especifica un contenedor de claves de nombre seguro.
--keyfile:filename Especifica el nombre de un archivo de clave pública para firmar el ensamblado generado.
--lib:folder-name

-I:folder-name
Especifica un directorio en el que se va a buscar ensamblados a los que se hace referencia.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/lib (C# Compiler Options).
--linkresource:resource-info Vincula un recurso especificado al ensamblado. El formato de resource-info es filename[name[public|private]]

Vincular un único recurso con esta opción es una alternativa a insertar un archivo de recursos completo con la --resource opción .

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/linkresource (C# Compiler Options).
--mlcompatibility Omite las advertencias que aparecen cuando se usan características diseñadas para la compatibilidad con otras versiones de ML.
--noframework Deshabilita la referencia predeterminada al .NET Framework ensamblado.
--nointerfacedata Indica al compilador que omita el recurso que normalmente agrega a un ensamblado que incluye metadatos específicos de F#.
--nologo No muestra el texto del banner al iniciar el compilador.
--nooptimizationdata Indica al compilador que solo incluya la optimización esencial para implementar construcciones en línea. Impide la integración entre módulos, pero mejora la compatibilidad binaria.
--nowin32manifest Indica al compilador que omita el manifiesto de Win32 predeterminado.
--nowarn:warning-number-list Deshabilita las advertencias específicas enumeradas por número. Separe cada número de advertencia mediante una coma. Puede detectar el número de advertencia de cualquier advertencia de la salida de compilación.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/nowarn (C# Compiler Options).
--optimize[+|-][optimization-option-list]

-O[+|-] [optimization-option-list]
Habilita o deshabilita las optimizaciones. Algunas opciones de optimización se pueden deshabilitar o habilitar de forma selectiva enumerando estas opciones. Estos son: nojitoptimize , , , , nojittracking nolocaloptimize nocrossoptimize notailcalls .
--out:output-filename

-o:output-filename
Especifica el nombre del ensamblado o módulo compilado.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/salida (opciones # compilador de C).
--pathmap:path=sourcePath,... Especifica cómo asignar rutas físicas a nombres de ruta de origen generados por el compilador.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/pathmap (C# Compiler Options).
--pdb:pdb-filename Denomina el archivo PDB (base de datos de programa) de depuración de salida. Esta opción solo se aplica cuando --debug también está habilitada.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/pdb (C# Compiler Options).
--platform:platform-name Especifica que el código generado solo se ejecutará en la plataforma especificada ( , o ) o, si se elige el nombre de la plataforma, especifica que el código generado se puede ejecutar en x86 Itanium cualquier x64 anycpu plataforma.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/plataforma (opciones del compilador# C).
--preferreduilang:lang Especifica el nombre de referencia cultural del idioma de salida preferido (por ejemplo, es-ES , ja-JP ).
--quotations-debug Especifica que se debe emitir información de depuración adicional para las expresiones que se derivan de literales de comillas de F# y definiciones reflejadas. La información de depuración se agrega a los atributos personalizados de un nodo de árbol de expresión de F#. Vea Comillas de código y Expr.CustomAttributes.
--reference:assembly-filename

-r:assembly-filename
Hace que el código de un ensamblado .NET Framework F# esté disponible para el código que se está compilando.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/referencia (opciones del compilador# C).
--resource:resource-filename Inserta un archivo de recursos administrado en el ensamblado generado.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/resource (C# Compiler Options).
--sig:signature-filename Genera un archivo de firma basado en el ensamblado generado. Para obtener más información sobre los archivos de firma, vea Firmas.
--simpleresolution Especifica que las referencias de ensamblado se deben resolver mediante reglas mono basadas en directorios en lugar de MSBuild resolución. El valor predeterminado es usar la MSBuild, excepto cuando se ejecuta en Mono.
--standalone Especifica que se produzca un ensamblado que contenga todas sus dependencias para que se ejecute por sí mismo sin necesidad de ensamblados adicionales, como la biblioteca de F#.
--staticlink:assembly-name Vincula estáticamente el ensamblado dado y todos los archivos DLL a los que se hace referencia que dependen de este ensamblado. Use el nombre del ensamblado, no el nombre del archivo DLL.
--subsystemversion Especifica la versión del subsistema del sistema operativo que va a usar el ejecutable generado. Use 6.02 para Windows 8.1, 6.01 para Windows 7, 6.00 para Windows Vista. Esta opción solo se aplica a los archivos ejecutables, no a los archivos DLL, y solo se debe usar si la aplicación depende de características de seguridad específicas disponibles solo en determinadas versiones del sistema operativo. Si se usa esta opción y un usuario intenta ejecutar la aplicación en una versión inferior del sistema operativo, se producirá un error con un mensaje de error.
--tailcalls[+|-] Habilita o deshabilita el uso de la instrucción il de cola, lo que hace que el marco de pila se reutilice para las funciones recursivas de cola. Esta opción está habilitada de manera predeterminada.
--target:[exe|winexe|library|module] filename Especifica el tipo y el nombre de archivo del código compilado generado.
  • exe significa una aplicación de consola.
  • winexesignifica que Windows aplicación, que difiere de la aplicación de consola en que no tiene definidos flujos de entrada/salida estándar (stdin, stdout y stderr).
  • library es un ensamblado sin un punto de entrada.
  • modulees un .NET Framework módulo (.netmodule), que posteriormente se puede combinar con otros módulos en un ensamblado.
--times Muestra información de tiempo para la compilación.
--utf8output Habilita la impresión de la salida del compilador en la codificación UTF-8.
--warn:warning-level Establece un nivel de advertencia (de 0 a 5). El nivel predeterminado es 3. Cada advertencia tiene un nivel en función de su gravedad. El nivel 5 proporciona más advertencias, pero menos graves, que el nivel 1.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/warn (C# Compiler Options).
--warnon:warning-number-list Habilite advertencias específicas que podrían estar desactivadas de forma predeterminada o deshabilitadas por otra opción de línea de comandos.
--warnaserror[+|-] [warning-number-list] Habilita o deshabilita la opción de notificar advertencias como errores. Puede proporcionar números de advertencia específicos que se deshabilitarán o habilitarán. Las opciones más adelante en la línea de comandos invalidan las opciones anteriores en la línea de comandos. Por ejemplo, para especificar las advertencias que no desea que se indiquen como errores, especifique --warnaserror+ --warnaserror-:warning-number-list .

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/warnaserror (C# Compiler Options).
--win32manifest:manifest-filename Agrega un archivo de manifiesto win32 a la compilación. Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/win32manifest (C# Compiler Options).
--win32res:resource-filename Agrega un archivo de recursos win32 a la compilación.

Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, vea/opciones del compilador win32res ((C#) ).

Advertencias de opt-in

El compilador de F# admite varias advertencias de opt-in:

Number Resumen Nivel Descripción
21 Recursión activada en tiempo de ejecución 5 Advertir cuando se comprueba un uso recursivo para la sonoridad de inicialización en tiempo de ejecución.
22 Enlaces ejecutados sin orden 5 Advertir cuando un enlace recursivo se puede ejecutar fuera de orden debido a una referencia hacia delante.
52 Copias implícitas de structs 5 Advertir cuando se copia una estructura inmutable para asegurarse de que una operación no muta el original.
1178 Igualdad o comparación implícitas 5 Advertir cuando se deduce implícitamente que una declaración de tipo de F# es NoEquality o pero el atributo no está presente en el NoComparison tipo.
1182 Variables sin utilizar N/D Advertir de variables no utilizadas.
3180 Asignaciones implícitas del montón N/D Advertir cuando un valor local mutable se asigna implícitamente como celda de referencia porque se ha capturado mediante un cierre.
3366 Notación de índice N/D Advertir cuando se usa la notación de índice F# expr.[idx] 5.
3517 Error de InlineIfLambda N/D Advertir cuando el optimizador de F# no puede en línea un valor, por ejemplo, si se ha proporcionado un valor de función calculado en lugar de InlineIfLambda una expresión lambda explícita.
3388 Conversión implícita adicional N/D Advertir cuando se usa implícitamente una conversión upcast adicional, agregada en F# 6.
3389 Ampliación implícita N/D Advertir cuando se usa un ampliación numérico implícito.
3390 op_Implicit Conversión N/D Advertir cuando se usa una conversión implícita de .NET en un argumento de método.

Puede habilitar estas advertencias mediante /warnon:NNNN o donde es el número de advertencia <WarnOn>NNNN</WarnOn> NNNN pertinente.

Title Descripción
Opciones de F# Interactive Describe las opciones de línea de comandos admitidas por el intérprete de F#, fsi.exe.
Referencia de propiedades del proyecto Describe la interfaz de usuario de los proyectos, incluidas las páginas de propiedades del proyecto que proporcionan opciones de compilación.