Compartir a través de


-determinista

Hace que el compilador genere un ensamblado cuya salida byte a byte es idéntica en todas las compilaciones para las entradas idénticas.

Sintaxis

-deterministic

Observaciones

De forma predeterminada, la salida del compilador de un conjunto determinado de entradas es única, ya que el compilador agrega una marca de tiempo y un GUID que se genera a partir de números aleatorios. Use la opción -deterministic para generar un ensamblado determinista, cuyo contenido binario es idéntico en todas las compilaciones, siempre y cuando la entrada siga siendo la misma.

El compilador tiene en cuenta las siguientes entradas con el fin de determinismo:

  • La secuencia de parámetros de la línea de comandos.
  • El contenido del archivo de respuesta .rsp del compilador.
  • La versión exacta del compilador que se usa y los ensamblados a los que se hace referencia.
  • La ruta de acceso del directorio actual.
  • El contenido binario de todos los archivos pasados explícitamente al compilador, ya sea de manera directa o indirecta, incluidos los siguientes:
    • Archivos de código fuente
    • Ensamblados a los que se hace referencia
    • Módulos a los que se hace referencia
    • Recursos
    • Archivo de clave de nombre seguro
    • @ archivos de respuesta
    • Analizadores
    • Conjuntos de reglas
    • Archivos adicionales que pueden usar los analizadores
  • La cultura actual (para el idioma en que se producen diagnósticos y mensajes de excepción).
  • Codificación predeterminada (o la página de códigos actual) si no se especifica la codificación.
  • La existencia (o la inexistencia) de archivos y su contenido en las rutas de búsqueda del compilador (especificada, por ejemplo, mediante -lib o -recurse).
  • Plataforma CLR en la que se ejecuta el compilador.
  • El valor de %LIBPATH%, que puede afectar a la carga de dependencias del analizador.

Cuando los orígenes están disponibles públicamente, se puede usar la compilación determinista para establecer si un binario se compila a partir de un origen de confianza. También puede ser útil en un sistema de compilación continuo para determinar si es necesario ejecutar los pasos de compilación que dependen de los cambios en un archivo binario.

Consulte también