Sdílet prostřednictvím


-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é