16

特定の開発マシンで、C# ソリューションの Visual Studio (2015 update 3) デバッグ ビルドが、ビルドされたすべての DLL とともに $RANDOM_SEED$ ファイルを生成していることに気付きました。

ファイルの内容は単一の数字です。 1443972318

ファイルを削除してから再構築すると、ファイルが別の番号で再生成されました。

この動作は、ソリューション内の単一のプロジェクト (標準 C# プロジェクトの参照/依存関係 + System.Management のみを持つプロジェクト) を再構築するときにも観察されました。

たとえば、コマンド ライン ビルドを実行して もファイルが再生成されないmsbuild <sln-file> ことに注意してください(完全なソリューションまたは単一プロジェクトのビルドの場合)。

VS の再起動後、ファイルは再生成されなくなります。

私たちが知る限り、このファイル名は、ソース コード、ビルド後の手順、または内部依存関係のいずれにも使用されていません。.NET フレームワーク クラスには、Random や RNGCryptoServiceProvider などのかなりの数の依存関係と、外部の依存関係があります。これらすべての完全なソース コードがないため、依存関係のいずれが原因であるかを徹底的に確認することはできません。

これは暗闇でのちょっとしたショットですが、質問は、これに似たものを見た人はいますか?

編集 これが反対票を投じられたことに驚かない-私はそれがかなりオープンエンドであることを感謝しますが、現在これを再現することができず、潜在的に深刻な結果をもたらす可能性があるため(乱数ジェネレーター攻撃?)とにかく投稿しました. 再現できれば、もちろんここで更新します。

4

2 に答える 2

11

このファイルは NUnit によって使用され、検出プロセスと実行プロセスの両方でランダム テスト ケースを生成するために同じランダム シード値を使用するようにします。これは、IDE が 2 つの異なるプロセスを使用してアダプタを実行するために必要です。vstest.console.exe の下でアダプターを実行する場合、実際には必要 (または作成) されません。

于 2016-11-03T20:19:29.973 に答える