Opciones del compilador
En este artículo se describen las opciones de línea de comandos del compilador de F#. El comando dotnet build
invoca al compilador de F# en archivos de proyecto de F#. Los archivos de proyecto de F# se reconocen por la extensión .fsproj
.
El entorno de compilación también se puede controlar mediante el establecimiento de las propiedades del proyecto. En el caso de los proyectos destinados a .NET Core, se usa la propiedad "Other flags", <OtherFlags>...</OtherFlags>
en .fsproj
, para especificar opciones de línea de comandos adicionales.
Opciones del compilador por orden alfabético
En la tabla siguiente se muestran las opciones del compilador ordenadas alfabéticamente. Algunas de las opciones del compilador de F# son similares a las del compilador de C#. Si es así, se proporciona un vínculo al tema de opciones del compilador de C#.
Opción del compilador | Descripción |
---|---|
--allsigs |
Genera un nuevo archivo de firma (o regenera uno existente) para cada archivo de origen de la compilación. Para obtener más información sobre los archivos de firma, vea Firmas. |
-a filename.fs |
Genera una biblioteca a partir del archivo especificado. Esta opción es una forma abreviada 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, consulte /baseaddress (Opciones del compilador de C#). |
--codepage:id |
Especifica qué página de códigos se va a 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 /code pages (Opciones del compilador de C#). |
--consolecolors |
Especifica que los errores y las advertencias usan texto codificado en color en la consola. |
--crossoptimize[+ or -] |
Habilita o deshabilita optimizaciones entre módulos. |
--delaysign[+|-] |
Retrasa la firma del ensamblado con solo la parte pública de la clave de nombre seguro. Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, consulte /delaysign (Opciones del compilador de C#). |
--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, consulte /checked (Opciones del compilador de 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 va a generar. El valor predeterminado es full , que permite asociar a un programa en ejecución. Elija pdbonly para 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 /debug (Opciones del compilador de C#). |
--define:symbol -d:symbol |
Define un símbolo para su uso en la compilación condicional. |
--deterministic[+|-] |
Genera un ensamblado determinista (con el GUID y la marca de tiempo de la versión del módulo). Esta opción no se puede usar con números de versión 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, consulte /doc (Opciones del compilador de C#). |
--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, consulte /fullpaths (Opciones del compilador de C#). |
--help -? |
Muestra información de uso, incluida una breve descripción de todas las opciones del compilador. |
--highentropyva[+|-] |
Habilita o deshabilita la selección aleatoria del diseño del espacio de direcciones (ASLR) de alta entropía, una característica de seguridad mejorada. El sistema operativo selecciona aleatoriamente las ubicaciones en memoria en las que 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 emplear el espacio de direcciones completo de 64 bits en una máquina 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 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, consulte /lib (Opciones del compilador de C#). |
--linkresource:resource-info |
Vincula un recurso especificado al ensamblado. El formato de la información de los recursos es filename[name[public|private]] La vinculación de un único recurso con esta opción es una alternativa a insertar un archivo de recursos completo con la opción --resource .Esta opción del compilador es equivalente a la opción del compilador de C# del mismo nombre. Para obtener más información, consulte /linkresource (Opciones del compilador de C#). |
--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 ensamblado de .NET Framework. |
--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 incluya solo la optimización esencial para implementar construcciones insertadas. Evita la inserció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 advertencias específicas que aparecen por número. Separe cada número de advertencia por una coma. Puede averiguar el número de advertencia de cualquier advertencia en la salida de 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, consulte /nowarn (Opciones del compilador de C#). |
--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 mediante su enumeración. Estas 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, consulte /out (Opciones del 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 (Opciones del compilador de C#). |
--pdb:pdb-filename |
Asigna un nombre al archivo PDB (base de datos de programa) de depuración de salida. Esta opción solo se aplica cuando --debug también está habilitado.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 (Opciones del compilador de C#). |
--platform:platform-name |
Especifica que el código generado solo se va a ejecutar en la plataforma especificada (x86 , Itanium o x64 ) o, si se elige el nombre de la plataforma anycpu , especifica que el código generado se puede ejecutar en cualquier 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, consulte /platform (Opciones del compilador de C#). |
--preferreduilang:lang |
Especifica el nombre de la referencia cultural del idioma de salida preferido (por ejemplo, es-ES , ja-JP ). |
--quotations-debug |
Especifica que se debe emitir información adicional de depuración para expresiones derivadas de literales de expresiones delimitadas de F# y definiciones reflejadas. La información de depuración se agrega a los atributos personalizados de un nodo del árbol de expresión de F#. Vea Expresiones de código delimitadas y Expr.CustomAttributes. |
--reference:assembly-filename -r:assembly-filename |
Hace que el código de un ensamblado de F# o .NET Framework 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, consulte /reference (Opciones del compilador de 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, consulte /resource (Opciones del compilador de C#). |
--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 resolución de MSBuild. El valor predeterminado es usar la resolución de MSBuild, excepto cuando se ejecuta en Mono. |
--standalone |
Especifica que hay que generar 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 especificado 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 debe usarse 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 produce 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 en las funciones recursivas de cola. Esta opción está habilitada de forma predeterminada. |
--target:[exe|winexe|library|module] filename |
Especifica el tipo y el nombre de archivo del código compilado generado.
|
--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 (0 a 5). El nivel predeterminado es 3. Cada advertencia recibe un nivel en función de su gravedad. El nivel 5 proporciona más advertencias, aunque 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, consulte /warn (Opciones del compilador de C#). |
--warnon:warning-number-list |
Habilita advertencias específicas que podrían estar desactivadas de manera predeterminada o deshabilitadas por otra opción de línea de comandos. La lista está separada por comas. |
--warnaserror[+|-] [warning-number-list] |
Habilita o deshabilita la opción para notificar advertencias como errores. Puede proporcionar números de advertencia específicos para que estén deshabilitadas o habilitadas. Las opciones posteriores de la línea de comandos invalidan las opciones anteriores de esta. Por ejemplo, para especificar las advertencias que no desea notificar 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, consulte /warnaserror (Opciones del compilador de C#). |
--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, consulte //win32manifest (opciones del compilador de C#). |
--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 /win32res (Opciones del compilador de C#). |
Advertencias de participación
El compilador de F# admite varias advertencias de participación:
Number | Resumen | Nivel | Descripción |
---|---|---|---|
21 | Recursividad comprobada en tiempo de ejecución | 5 | Advierte si se comprueba la corrección de inicialización de un uso recursivo en tiempo de ejecución. |
22 | Enlaces ejecutados fuera del orden | 5 | Advierte si se puede ejecutar un enlace recursivo fuera del orden debido a una referencia hacia delante. |
52 | Copias implícitas de estructuras | 5 | Advierte si se copia una estructura inmutable para asegurarse de que una operación no mute el original. |
1178 | Igualdad o comparación implícita | 5 | Advierte si una declaración de tipos de F# se deduce implícitamente como NoEquality o NoComparison pero el atributo no está presente en el tipo. |
1182 | Variables sin utilizar | N/D | Advierte de variables no utilizadas. |
3180 | Asignaciones implícitas del montón | N/D | Advierte si un elemento local mutable se asigna implícitamente como una celda de referencia porque se ha capturado mediante una clausura. |
3366 | Notación de índice | N/D | Advierte si se usa la notación de índice expr.[idx] de F# 5. |
3517 | InlineIfLambda failure | N/D | Advierte si el optimizador de F# no puede insertar un valor InlineIfLambda , por ejemplo, si se ha proporcionado un valor de función calculada en lugar de una expresión lambda explícita. |
3387 | Conversión op_Implicit |
N/D | Advierte si se usa una conversión implícita de .NET en un argumento de método. |
3388 | Difusión implícita adicional | N/D | Advierte si se usa implícitamente una difusión adicional, agregada en F# 6. |
3389 | Ampliación implícita | N/D | Advierte si se usa una ampliación numérica implícita. |
3390 | Comentarios de documentación XML con formato incorrecto | N/D | Avisa cuando los comentarios de documentación XML tienen un formato incorrecto de varias maneras. |
Puede habilitar estas advertencias mediante /warnon:NNNN
o <WarnOn>NNNN</WarnOn>
, donde NNNN
es el número de advertencia correspondiente.
(También puede usar la sintaxis <WarnOn>FSNNNN</WarnOn>
, por ejemplo, <WarnOn>FS3388</WarnOn>
). Tenga en cuenta que si la propiedad WarnOn
se especifica varias veces, solo se usa la última aparición. Para especificar varias advertencias, proporcione la propiedad WarnOn
una vez con una cadena separada por comas como su contenido: <WarnOn>3388,3559</WarnOn>
.
Artículos relacionados
Title | Descripción |
---|---|
Opciones de F# Interactive | Describe las opciones de línea de comandos compatibles con 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. |