同一の入力に対して、コンパイルごとにバイト単位で同一の出力を生成するアセンブリを生成します。
構文
-deterministic
注釈
既定では、指定された入力セットからのコンパイラ出力は一意です。これは、ランダムな数値から生成されるタイムスタンプと GUID がコンパイラによって追加されるためです。
-deterministic
オプションを使用して、決定論的アセンブリを生成します。そのバイナリ コンテンツは、入力が同じである限り、コンパイル全体で同一になります。
コンパイラは、決定性を目的として次の入力を考慮します。
- コマンド ライン パラメーターのシーケンス。
- コンパイラの .rsp 応答ファイルの内容。
- 使用されるコンパイラの正確なバージョン、およびその参照先のアセンブリ。
- 現在のディレクトリ パス。
- すべてのファイルのバイナリ コンテンツは、以下を含めて、直接または間接のいずれかでコンパイラに明示的に渡されます。
- ソース ファイル
- 参照先アセンブリ
- 参照モジュール
- リソース
- 厳密な名前のキー ファイル
- @ 応答ファイル
- アナライザー
- ルールセット
- アナライザーで使用できるその他のファイル
- 現在のカルチャ (診断と例外メッセージが生成される言語)。
- エンコードが指定されていない場合は、既定のエンコード (または現在のコード ページ)。
- コンパイラの検索パス上のファイルの有無、および内容 (たとえば、
-lib
や-recurse
で指定)。 - コンパイラが実行される CLR プラットフォーム。
-
%LIBPATH%
の値。アナライザーの依存関係の読み込みに影響する場合があります。
ソースが一般公開されている場合は、バイナリが信頼できるソースからコンパイルされるかどうかを確立するために決定論的コンパイルを使用できます。 また、バイナリへの変更に依存するビルド ステップを実行する必要があるかどうかを判断するために、継続的なビルド システムでも役立ちます。
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET