-determinística
Faz com que o compilador produza um assembly cuja saída byte por byte é idêntica entre compilações para entradas idênticas.
Sintaxe
-deterministic
Observações
Por padrão, a saída do compilador de um determinado conjunto de entradas é exclusiva, uma vez que o compilador adiciona um carimbo de data/hora e um GUID que é gerado a partir de números aleatórios. Você usa a -deterministic
opção para produzir um assembly determinístico, cujo conteúdo binário é idêntico entre compilações, desde que a entrada permaneça a mesma.
O compilador considera as seguintes entradas para fins de determinismo:
- A sequência de parâmetros de linha de comando.
- O conteúdo do arquivo de resposta .rsp do compilador.
- A versão precisa do compilador usado e seus assemblies referenciados.
- O caminho do diretório atual.
- O conteúdo binário de todos os arquivos explicitamente passados para o compilador direta ou indiretamente, incluindo:
- Arquivos de origem
- Montagens referenciadas
- Módulos referenciados
- Recursos
- O arquivo de chave de nome forte
- @ arquivos de resposta
- Analisadores
- Conjuntos de regras
- Arquivos adicionais que podem ser usados por analisadores
- A cultura atual (para o idioma em que os diagnósticos e as mensagens de exceção são produzidos).
- A codificação padrão (ou a página de código atual) se a codificação não for especificada.
- A existência, inexistência e conteúdo de arquivos nos caminhos de pesquisa do compilador (especificado, por exemplo, por
-lib
ou-recurse
). - A plataforma CLR na qual o compilador é executado.
- O valor de , que pode afetar o carregamento de dependência do
%LIBPATH%
analisador.
Quando as fontes estão disponíveis publicamente, a compilação determinística pode ser usada para estabelecer se um binário é compilado a partir de uma fonte confiável. Ele também pode ser útil em um sistema de compilação contínua para determinar se as etapas de compilação que dependem de alterações em um binário precisam ser executadas.