Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Indique au compilateur de générer un assembly dont la sortie octet-pour-octet est identique dans les compilations pour les entrées identiques.
Syntaxe
-deterministic
Remarques
Par défaut, la sortie du compilateur à partir d’un ensemble donné d’entrées est unique, car le compilateur ajoute un horodatage et un GUID générés à partir de nombres aléatoires. Utilisez l’option -deterministic pour générer un assembly déterministe, dont le contenu binaire sera identique dans les compilations tant que l’entrée restera la même.
Le compilateur considère les entrées suivantes à des fins de déterminisme :
- La séquence des paramètres de ligne de commande.
- Le contenu du fichier réponse .rsp du compilateur.
- La version précise du compilateur utilisée et ses assemblys référencés.
- Le chemin de répertoire actif.
- Le contenu binaire de tous les fichiers explicitement passés au compilateur directement ou indirectement, notamment :
- Fichiers sources
- Assemblys référencés
- Modules référencés
- Ressources
- Fichier de clé de nom fort
- Fichiers réponse @
- Analyseurs
- Ensembles de règles
- Fichiers supplémentaires qui peuvent être utilisés par les analyseurs
- La culture actuelle (pour le langage dans lequel les diagnostics et les messages d’exception sont produits).
- Encodage par défaut (ou page de codes actuel) si l’encodage n’est pas spécifié.
- L’existence, la non-existence et le contenu des fichiers sur les chemins de recherche du compilateur (spécifiés, par exemple, par
-libou-recurse). - Plateforme CLR sur laquelle le compilateur est exécuté.
- La valeur de
%LIBPATH%, qui peut affecter le chargement des dépendances de l’analyseur.
Lorsque des sources sont disponibles publiquement, la compilation déterministe peut être utilisée pour déterminer si un binaire est compilé à partir d’une source approuvée. Il peut également être utile dans un système de génération continu pour déterminer si les étapes de génération qui dépendent des modifications apportées à un fichier binaire doivent être exécutées.