Visual studio Visual Studio C#解决方案的构建生成的$RANDOM_SEED$文件是什么?

Visual studio Visual Studio C#解决方案的构建生成的$RANDOM_SEED$文件是什么?,visual-studio,nunit,random-seed,test-explorer,nunittestadapter,Visual Studio,Nunit,Random Seed,Test Explorer,Nunittestadapter,我们注意到,在某台开发机器上,一个C#解决方案的Visual Studio(2015 update 3)调试构建在每个构建的DLL旁边生成一个$RANDOM_SEED$文件 文件的内容只是一个数字,例如。 1443972318 删除文件然后重新生成导致重新生成文件,并使用不同的编号 在解决方案中重建单个项目(只有标准C#project refs/dependencies+System.Management)时也观察到这种行为 请注意,运行命令行生成,例如。 msbuild 未重新生成文件(用于构

我们注意到,在某台开发机器上,一个C#解决方案的Visual Studio(2015 update 3)调试构建在每个构建的DLL旁边生成一个$RANDOM_SEED$文件

文件的内容只是一个数字,例如。
1443972318

删除文件然后重新生成导致重新生成文件,并使用不同的编号

在解决方案中重建单个项目(只有标准C#project refs/dependencies+System.Management)时也观察到这种行为

请注意,运行命令行生成,例如。
msbuild
未重新生成文件(用于构建完整解决方案或单个项目)

重新启动VS后,文件不再重新生成。

据我们所知,在我们的任何源代码、构建后步骤或内部依赖项中都没有使用此文件名。 对.NET framework类有很多依赖关系,包括Random和RNGCryptoServiceProvider,以及外部依赖关系。我们没有所有这些的完整源代码,因此不可能彻底检查是否有依赖项

这有点像是在黑暗中拍摄的,但问题是有人见过类似的镜头吗?

编辑 我并不奇怪这被否决了——我很欣赏这是一个非常开放的版本,但由于我目前无法复制它,而且它可能会产生潜在的严重后果(随机数生成器攻击?),我还是发布了它。如果我能够复制,我当然会在这里更新。

我有相同的文件。 经过短暂的调查后,我被判有罪: 此文件由NUnit 3.x测试适配器创建。
(您可以从NUnit适配器源代码的AdapterSettings.cs中检查该文件)。

NUnit使用该文件来确保我们在发现和执行过程中使用相同的随机种子值来生成随机测试用例。这是必需的,因为IDE使用两个不同的进程来执行适配器。在vstest.console.exe下运行适配器时,它实际上不是必需的(或创建的)。

不太可能是Microsoft文件,而不是它们的命名约定。建筑和想要做一些随机但可重复的事情的逻辑交叉点很小。看看那些机器上使用的单元测试运行程序,我今天也看到了。但是我不知道它是从哪里来的。我使用了这里提到的第三方工具-结果是vstest.discoveryengine.x86.exe创建了该文件。我用一个C#类库项目重新编写了一个新的解决方案。甚至不需要构建,只需打开解决方案并等待TestExplorer窗口更新就足够了。确切的exe是:
C:\Program Files(x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.discoveryengine.x86.exe
,是的,我确实安装了NUnit 3测试适配器v3.5.1…仍然不确定随机种子值的确切用法,或者是什么条件导致它写入文件。另外,在NUnit测试适配器中找不到与此相关的任何内容。。。