Opções do compilador

Este artigo descreve as opções de linha de comando do compilador para o compilador F#. O comando dotnet build invoca o compilador F# em arquivos de projeto F#. Os arquivos de projeto F# são observados com a extensão .fsproj.

O ambiente de compilação também pode ser controlado definindo as propriedades do projeto. Para projetos direcionados ao .NET Core, a propriedade "Outros sinalizadores", <OtherFlags>...</OtherFlags>em .fsproj, é usada para especificar opções extras de linha de comando.

Opções do compilador listadas em ordem alfabética

A tabela a seguir mostra as opções do compilador listadas em ordem alfabética. Algumas das opções do compilador F# são semelhantes às opções do compilador C#. Se esse for o caso, será fornecido um link para o tópico de opções do compilador C#.

Opção do compilador Descrição
--allsigs Gera um novo arquivo de assinatura (ou regenera um arquivo de assinatura existente) para cada arquivo de origem na compilação. Para mais informações sobre arquivos de assinatura, confira Assinaturas.
-a filename.fs Gera uma biblioteca do arquivo especificado. Essa opção é uma forma curta de --target:library filename.fs.
--baseaddress:address Especifica o endereço básico preferencial no qual uma DLL será carregada.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /baseaddress (opções do compilador C#).
--codepage:id Especifica qual página de código deve ser usada durante a compilação caso a página necessária não seja a página de código padrão atual do sistema.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para mais informações, confira /codepage (opções do compilador C#).
--consolecolors Especifica que erros e avisos usam texto codificado por cores no console.
--crossoptimize[+ or -] Habilita ou desabilita otimizações entre módulos.
--delaysign[+|-] Faz assinatura atrasada do assembly usando somente a parte pública da chave de nome forte.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /delaysign (opções do compilador C#).
--checked[+|-] Habilita ou desabilita a geração de verificações de estouro.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /checked (opções do compilador C#).
--debug[+|-]

-g[+|-]

--debug:[full|pdbonly]

-g: [full|pdbonly]
Habilita ou desabilita a geração de informações de depuração ou especifica o tipo de informação de depuração a ser gerada. O padrão é full, que permite que um depurador seja anexado a um programa em execução. Escolha pdbonly para obter informações de depuração limitadas armazenadas em um arquivo pdb (banco de dados do programa).

Equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte

/debug (opções do compilador do C#).
--define:symbol

-d:symbol
Define um símbolo para uso na compilação condicional.
--deterministic[+|-] Produz um assembly determinístico (incluindo GUID de versão do módulo e carimbo de data/hora). Essa opção não pode ser usada com números de versão curinga e só dá suporte a tipos de depuração inseridos e portáteis
--doc:xmldoc-filename Instrui o compilador a gerar comentários de documentação XML para o arquivo especificado. Para mais informações, confira a Documentação do XML.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /doc (opções do compilador C#).
--fullpaths Instrui o compilador a gerar caminhos totalmente qualificados.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /fullpaths (opções do compilador C#).
--help

-?
Exibe informações de uso, incluindo uma breve descrição de todas as opções do compilador.
--highentropyva[+|-] Habilitar ou desabilitar a ASLR (randomização de layout de espaço de endereço de alta entropia), um recurso de segurança aprimorado. O SO randomiza os locais na memória em que a infraestrutura para aplicativos (como a pilha e o heap) são carregadas. Se você habilitar essa opção, os sistemas operacionais poderão usar essa randomização para usar o espaço de endereço completo de 64 bits em um computador de 64 bits.
--keycontainer:key-container-name Especifica um contêiner de chave de nome forte.
--keyfile:filename Especifica o nome de um arquivo de chave pública para assinar o assembly gerado.
--lib:folder-name

-I:folder-name
Especifica um diretório a ser pesquisado para assemblies referenciados.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /lib (opções do compilador C#).
--linkresource:resource-info Vincula um recurso especificado ao assembly. O formato de informações de recurso é filename[name[public|private]]

Vincular um só recurso a essa opção é uma alternativa para inserir um arquivo de recurso inteiro com a opção --resource.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /linkresource (opções do compilador C#).
--mlcompatibility Ignora avisos que aparecem quando você usa recursos projetados para compatibilidade com outras versões do ML.
--noframework Desabilita a referência padrão ao assembly .NET Framework.
--nointerfacedata Instrui o compilador a omitir o recurso que normalmente adiciona a um assembly que inclui metadados específicos de F#.
--nologo Não mostra o texto da faixa ao iniciar o compilador.
--nooptimizationdata Instrui o compilador a incluir apenas a otimização essencial para implementar constructos embutidos. Inibe embutir entre módulos, mas melhora a compatibilidade binária.
--nowin32manifest Instrui o compilador a omitir o manifesto Win32 padrão.
--nowarn:warning-number-list Desabilita avisos específicos listados por número. Separe cada número de aviso por uma vírgula. Você pode descobrir o número de aviso para qualquer aviso da saída da compilação.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /nowarn (opções do compilador C#).
--optimize[+|-] [optimization-option-list]

-O[+|-] [optimization-option-list]
Habilita ou desabilita otimizações. Algumas opções de otimização podem ser desabilitadas ou habilitadas seletivamente listando-as. Elas são: nojitoptimize, nojittracking, nolocaloptimize, nocrossoptimize, notailcalls.
--out:output-filename

-o:output-filename
Especifica o nome do assembly ou módulo compilado.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /out (opções do compilador C#).
--pathmap:path=sourcePath,... Especifica como mapear caminhos físicos para nomes de caminho de origem emitidos pelo compilador.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para mais informações, confira /pathmap (opções do compilador C#).
--pdb:pdb-filename Nomeia o arquivo PDB de depuração de saída (banco de dados do programa). Essa opção só se aplica quando --debug também está habilitado.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para mais informações, confira /pdb (opções do compilador C#).
--platform:platform-name Especifica que o código gerado só será executado na plataforma especificada (x86, Itanium ou x64) ou, se o nome de plataforma anycpu for escolhido, especifica que o código gerado pode ser executado em qualquer plataforma.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /platform (opções do compilador C#).
--preferreduilang:lang Especifica o nome de cultura de idioma de saída preferencial (por exemplo, es-ES, ja-JP).
--quotations-debug Especifica que informações extras de depuração devem ser emitidas para expressões derivadas de literais de citações F# e definições refletidas. As informações de depuração são adicionadas aos atributos personalizados de um nó de árvore de expressão de F#. Confira Citações de Código e Expr.CustomAttributes.
--reference:assembly-filename

-r:assembly-filename
Disponibiliza o código de um assembly F# ou .NET Framework para o código que está sendo compilado.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /reference (opções do compilador C#).
--resource:resource-filename Insira um arquivo de recurso gerenciado no assembly gerado.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /resource (opções do compilador C#).
--sig:signature-filename Gera um arquivo de assinatura com base no assembly gerado. Para mais informações sobre arquivos de assinatura, confira Assinaturas.
--simpleresolution Especifica que as referências de assembly devem ser resolvidas usando regras Mono baseadas em diretório em vez da resolução do MSBuild. O padrão é usar a resolução do MSBuild, exceto quando executado em Mono.
--standalone Especifica para produzir um assembly que contenha todas as suas dependências para que ele seja executado sozinho sem a necessidade de assemblies adicionais, como a biblioteca F#.
--staticlink:assembly-name Vincula estaticamente o assembly fornecido e todas as DLLs referenciadas que dependem desse assembly. Use o nome do assembly, não o nome da DLL.
--subsystemversion Especifica a versão do subsistema do sistema operacional a ser usada pelo executável gerado. Use 6.02 para Windows 8.1, 6.01 para Windows 7, 6.00 para Windows Vista. Essa opção só se aplica a executáveis, não a DLLs, e só precisará ser usada se o aplicativo depender de recursos de segurança específicos disponíveis apenas em determinadas versões do sistema operacional. Se essa opção for usada e um usuário tentar executar seu aplicativo em uma versão inferior do sistema operacional, ela falhará com uma mensagem de erro.
--tailcalls[+|-] Habilita ou desabilita o uso da instrução IL final, o que faz com que o registro de ativação seja reutilizado para funções recursivas de cauda. Por padrão, essa opção é ativada.
--target:[exe|winexe|library|module] filename Especifica o tipo e o nome do arquivo do código compilado gerado.
  • exe significa um aplicativo de console.
  • winexe significa um aplicativo do Windows, que difere do aplicativo de console, pois não tem fluxos de entrada/saída padrão (stdin, stdout e stderr) definidos.
  • library é um assembly sem um ponto de entrada.
  • module é um módulo de .NET Framework (.netmodule), que mais tarde pode ser combinado a outros módulos em um assembly.
--times Exibe informações de tempo para compilação.
--utf8output Habilita a saída do compilador de impressão na codificação UTF-8.
--warn:warning-level Define um nível de aviso (0 a 5). O nível padrão é 3. Cada aviso recebe um nível com base em sua gravidade. O nível 5 fornece avisos mais, mas menos severos, do que o nível 1.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /warn (opções do compilador C#).
--warnon:warning-number-list Habilite avisos específicos que podem estar desativados por padrão ou desabilitados por outra opção de linha de comando. A lista é separada por vírgulas.
--warnaserror[+|-] [warning-number-list] Habilita ou desabilita a opção de relatar avisos como erros. Você pode fornecer números de aviso específicos a serem desabilitados ou habilitados. Opções posteriores na linha de comando substituem opções anteriormente na linha de comando. Por exemplo, para especificar os avisos que você não deseja relatar como erros, especifique --warnaserror+--warnaserror-:warning-number-list.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /warnaserror (opções do compilador C#).
--win32manifest:manifest-filename Adiciona um arquivo de manifesto Win32 à compilação. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /win32manifest (opções do compilador C#).
--win32res:resource-filename Adiciona um arquivo de recurso Win32 à compilação.

Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para mais informações, confira /win32res (opções do compilador C#).

Avisos de aceitação

O compilador F# dá suporte a vários avisos de aceitação:

Número Resumo Nível Descrição
21 Recursão verificada em tempo de execução 5 Avisar quando um uso recursivo for verificado quanto à solidez da inicialização em tempo de execução.
22 Associações executadas fora de ordem 5 Avisar quando uma associação recursiva pode ser executada fora de ordem devido a uma referência de encaminhamento.
52 Cópias implícitas de structs 5 Avisar quando um struct imutável for copiado para garantir que o original não seja alterado por uma operação.
1178 Igualdade/comparação implícita 5 Avisar quando uma declaração de tipo F# é implicitamente inferida como sendo NoEquality ou NoComparison, mas o atributo não está presente no tipo.
1182 Variáveis não usadas n/d Avisar para variáveis não usadas.
3180 Alocações de heap implícitas n/d Avisar quando um local mutável é alocado implicitamente como uma célula de referência porque foi capturado por um fechamento.
3366 Notação de índice n/d Avisar quando a notação de índice F# 5 expr.[idx] for usada.
3517 Falha de InlineIfLambda n/a Avisar quando o otimizador F# não conseguir embutir um valor InlineIfLambda, por exemplo, se um valor de função computada tiver sido fornecido em vez de um lambda explícito.
3387 Conversão de op_Implicit n/d Avisar quando uma conversão implícita do .NET for usada em um argumento de método.
3388 Upcast implícito adicional n/d Avisar quando um upcast adicional for usado implicitamente, adicionado em F# 6.
3389 Ampliação implícita n/d Avisar quando uma ampliação numérica implícita for usada.
3390 Comentários malformados da documentação XML n/d Avisar quando os comentários da documentação XML estiverem malformados de várias maneiras.

Você pode habilitar esses avisos usando /warnon:NNNN ou <WarnOn>NNNN</WarnOn>, em que NNNN é o número de aviso relevante. (Você também pode usar a sintaxe <WarnOn>FSNNNN</WarnOn>, por exemplo, <WarnOn>FS3388</WarnOn>.) Observe que, se a propriedade WarnOn for especificada várias vezes, somente a última ocorrência será usada. Para especificar vários avisos, forneça a propriedade WarnOn uma vez com uma cadeia de caracteres separada por vírgulas como o seu conteúdo: <WarnOn>3388,3559</WarnOn>.

Título Descrição
Opções do F# Interativo Descreve as opções de linha de comando compatíveis com o interpretador F#, fsi.exe.
Referência de Propriedades do Projeto Descreve a interface do usuário para projetos, incluindo páginas de propriedades do projeto que fornecem opções de build.