-deterministic
Způsobí, že kompilátor vytvoří sestavení, jehož výstup byte-for-byte je stejný napříč kompilacemi pro identické vstupy.
Syntaxe
-deterministic
Poznámky
Ve výchozím nastavení je výstup kompilátoru z dané sady vstupů jedinečný, protože kompilátor přidá časové razítko a identifikátor GUID vygenerovaný z náhodných čísel. Tuto možnost použijete -deterministic
k vytvoření deterministického sestavení, jehož binární obsah je identický napříč kompilacemi, pokud vstup zůstane stejný.
Kompilátor považuje následující vstupy za účelem determinismu:
- Posloupnost parametrů příkazového řádku
- Obsah souboru odpovědi .rsp kompilátoru.
- Přesná verze použitého kompilátoru a jeho odkazovaná sestavení.
- Aktuální cesta k adresáři.
- Binární obsah všech souborů explicitně předán kompilátoru přímo nebo nepřímo, včetně:
- Zdrojové soubory
- Odkazovaná sestavení
- Odkazované moduly
- Zdroje informací
- Soubor klíče silného názvu
- Soubory odpovědí @
- Analyzátory
- Rulesets
- Další soubory, které můžou používat analyzátory
- Aktuální jazyková verze (pro jazyk, ve kterém se vytvářejí zprávy diagnostiky a výjimek).
- Výchozí kódování (nebo aktuální znaková stránka), pokud není zadáno kódování.
- Existence, neexistující a obsah souborů ve vyhledávacích cestách kompilátoru (zadané například pomocí
-lib
nebo-recurse
). - Platforma CLR, na které je kompilátor spuštěn.
- Hodnota
%LIBPATH%
, která může ovlivnit načítání závislostí analyzátoru.
Pokud jsou zdroje veřejně dostupné, lze deterministické kompilace použít k určení, zda je binární soubor zkompilován z důvěryhodného zdroje. Může být také užitečné v systému průběžného sestavování pro určení, jestli je potřeba provést kroky sestavení, které jsou závislé na změnách binárního souboru.
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro