-Determinisztikus

A fordító olyan összeállítást hoz létre, amelynek kimenete bájtról bájtra azonos az egyező bemenetek esetén végzett fordítások során.

Szemantika

-deterministic

Megjegyzések

Alapértelmezés szerint a fordító egy adott bemenetkészletből származó kimenete egyedi, mivel a fordító hozzáad egy időbélyeget és egy GUID-t, amely véletlenszerű számokból jön létre. -deterministic A beállítással determinisztikus szerelvényt hozhat létre, amelynek bináris tartalma megegyezik a fordítások között, amíg a bemenet változatlan marad.

A fordító a determinizmus szempontjából a következő bemeneteket veszi figyelembe:

  • Parancssori paraméterek sorozata.
  • A fordító .rsp válaszfájljának tartalma.
  • A használt fordító pontos verziója és a hivatkozott szerelvények.
  • Az aktuális könyvtár elérési útja.
  • A fordítónak közvetlenül vagy közvetve átadott összes fájl bináris tartalma, beleértve a következőket:
    • Forrásfájlok
    • Hivatkozott szerelvények
    • Hivatkozott modulok
    • Erőforrások
    • Az erős névkulcsfájl
    • @ válaszfájlok
    • Elemzők
    • Szabálykészletek
    • További fájlok, amelyeket az elemzők használhatnak
  • Az aktuális kultúra (azon nyelv esetében, amelyben a diagnosztikai és kivételüzenetek létre lettek hozva).
  • Az alapértelmezett kódolás (vagy az aktuális kódlap), ha a kódolás nincs megadva.
  • A fordító keresési útvonalain megadott fájlok létezése, nem létezése és tartalma (például a -lib vagy -recurse által megadva).
  • Az a CLR-platform, amelyen a fordító fut.
  • Az %LIBPATH% értéke, amely befolyásolhatja az elemző függőségeinek betöltését.

Ha a források nyilvánosan elérhetők, determinisztikus fordítással állapítható meg, hogy egy bináris fájl megbízható forrásból van-e lefordítva. A folyamatos buildrendszerben is hasznos lehet annak meghatározásához, hogy végre kell-e hajtani a bináris módosításoktól függő összeállítási lépéseket.

Lásd még