Bagikan melalui


-Deterministik

Menyebabkan pengompilasi menghasilkan rakitan dengan output byte demi byte yang identik pada setiap kompilasi untuk input yang identik.

Sintaksis

-deterministic

Komentar

Secara default, output compiler dari sekumpulan input tertentu unik, karena pengkompilasi menambahkan tanda waktu dan GUID yang dihasilkan dari angka acak. Anda menggunakan opsi -deterministic untuk menghasilkan rakitan deterministik, yang konten binernya identik di seluruh kompilasi selama input tetap sama.

Kompilator mempertimbangkan input berikut untuk tujuan determinisme:

  • Urutan parameter baris perintah.
  • Isi dari file respons .rsp pengompilasi.
  • Versi yang tepat dari pengompilasi yang digunakan, dan rakitan referensinya.
  • Jalur direktori saat ini.
  • Konten biner dari semua file secara eksplisit diteruskan ke pengkompilasi baik secara langsung maupun tidak langsung, termasuk:
    • File sumber
    • Perakitan yang Direferensikan
    • Modul yang Direferensikan
    • Sumber Daya
    • File kunci nama yang kuat
    • @ file respon
    • Penganalisis
    • Set aturan
    • File tambahan yang dapat digunakan oleh penganalisis
  • Budaya saat ini (untuk bahasa di mana pesan diagnostik dan pengecualian diproduksi).
  • Pengodean default (atau halaman kode saat ini) jika pengodean tidak ditentukan.
  • Keberadaan, ketiadaan, dan konten file pada jalur pencarian pengompilasi (ditentukan, misalnya, oleh -lib atau -recurse).
  • Platform CLR tempat pengkompilasi dijalankan.
  • Nilai %LIBPATH%, yang dapat mempengaruhi pemuatan dependensi penganalisis.

Ketika sumber tersedia untuk umum, kompilasi deterministik dapat digunakan untuk menetapkan apakah biner dikompilasi dari sumber tepercaya. Ini juga dapat berguna dalam sistem build berkelanjutan untuk menentukan apakah langkah build yang bergantung pada perubahan pada biner perlu dijalankan.

Lihat juga