Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Powoduje, że kompilator tworzy zestaw, którego dane wyjściowe bajtu dla bajtów są identyczne w kompilacjach dla identycznych danych wejściowych.
Składnia
-deterministic
Uwagi
Domyślnie dane wyjściowe kompilatora z danego zestawu danych wejściowych są unikatowe, ponieważ kompilator dodaje znacznik czasu i identyfikator GUID generowany na podstawie liczb losowych. Możesz użyć -deterministic
opcji , aby utworzyć zestaw deterministyczny, którego zawartość binarna jest identyczna w kompilacjach, o ile dane wejściowe pozostają takie same.
Kompilator uwzględnia następujące dane wejściowe w celu determinizmu:
- Sekwencja parametrów wiersza polecenia.
- Zawartość pliku odpowiedzi rsp kompilatora.
- Dokładna wersja używanego kompilatora i jego zestawów, do których się odwołuje.
- Bieżąca ścieżka katalogu.
- Zawartość binarna wszystkich plików jawnie przekazana kompilatorowi bezpośrednio lub pośrednio, w tym:
- Pliki źródłowe
- Zestawy, do których odwołuje się odwołanie
- Moduły, do których odwołuje się odwołanie
- Zasoby
- Plik klucza silnej nazwy
- @ pliki odpowiedzi
- Analizatory
- Zestawy reguł
- Dodatkowe pliki, które mogą być używane przez analizatory
- Bieżąca kultura (dla języka, w którym są generowane komunikaty diagnostyczne i komunikaty o wyjątkach).
- Domyślne kodowanie (lub bieżąca strona kodowa), jeśli kodowanie nie jest określone.
- Istnienie, brak istnienia i zawartość plików w ścieżkach wyszukiwania kompilatora (określonych na przykład przez
-lib
lub-recurse
). - Platforma CLR, na której jest uruchamiany kompilator.
- Wartość
%LIBPATH%
, która może mieć wpływ na ładowanie zależności analizatora.
Gdy źródła są publicznie dostępne, kompilacja deterministyczna może służyć do ustalenia, czy plik binarny jest kompilowany z zaufanego źródła. Może to być również przydatne w systemie ciągłej kompilacji do określania, czy należy wykonać kroki kompilacji zależne od zmian w pliku binarnym.