可讓編譯器產生相同輸入之編譯間的逐一位元組輸出相同的組件。
語法
-deterministic
備註
根據預設,來自指定輸入集的編譯程式輸出是唯一的,因為編譯程式會新增時間戳和從隨機數產生的 GUID。 您可以使用 -deterministic 選項來產生「確定性組件」,這是只要輸入維持不變,其二進位內容在編譯之間就相同的組件。
編譯程式會考慮下列輸入,以便確定性:
- 命令列參數序列。
- 編譯器之 .rsp 回應檔的內容。
- 使用的編譯器精確版本和其參考的組件。
- 目前的目錄路徑。
- 以直接或間接方式明確地傳遞給編譯器之所有檔案的二進位內容,包含:
- 原始程式檔
- 參考的組件
- 參考的模組
- 資源
- 強式名稱金鑰檔
- @ 回應檔
- 分析器
- 規則集
- 分析器可能使用的其他檔案
- 目前語言環境(用於產生診斷和例外訊息)。
- 如果未指定編碼,則為預設編碼 (或目前的代碼頁)。
- 編譯器搜尋路徑(例如,透過
-lib或-recurse指定)上的檔案存在與否及其內容。 - 執行編譯程式的 CLR 平臺。
-
%LIBPATH%的值,可能會影響分析器相依性載入。
當來源可供公開使用時,可以使用具決定性的編譯來建立是否從信任的來源編譯二進位檔。 在連續建置系統中,它也適用於判斷是否需要執行相依於二進位檔變更的建置步驟。