共用方式為


-確定性

可讓編譯器產生相同輸入之編譯間的逐一位元組輸出相同的組件。

語法

-deterministic

備註

根據預設,來自指定輸入集的編譯程式輸出是唯一的,因為編譯程式會新增時間戳和從隨機數產生的 GUID。 您可以使用 -deterministic 選項來產生「確定性組件」,這是只要輸入維持不變,其二進位內容在編譯之間就相同的組件。

編譯程式會考慮下列輸入,以便確定性:

  • 命令列參數序列。
  • 編譯器之 .rsp 回應檔的內容。
  • 使用的編譯器精確版本和其參考的組件。
  • 目前的目錄路徑。
  • 以直接或間接方式明確地傳遞給編譯器之所有檔案的二進位內容,包含:
    • 原始程式檔
    • 參考的組件
    • 參考的模組
    • 資源
    • 強式名稱金鑰檔
    • @ 回應檔
    • 分析器
    • 規則集
    • 分析器可能使用的其他檔案
  • 目前語言環境(用於產生診斷和例外訊息)。
  • 如果未指定編碼,則為預設編碼 (或目前的代碼頁)。
  • 編譯器搜尋路徑(例如,透過 -lib-recurse 指定)上的檔案存在與否及其內容。
  • 執行編譯程式的 CLR 平臺。
  • %LIBPATH% 的值,可能會影響分析器相依性載入。

當來源可供公開使用時,可以使用具決定性的編譯來建立是否從信任的來源編譯二進位檔。 在連續建置系統中,它也適用於判斷是否需要執行相依於二進位檔變更的建置步驟。

另請參閱