我们注意到,在特定的开发机器上,Visual (2015年更新3)调试C#解决方案的生成是在每个生成的DLL旁边生成一个$RANDOM_SEED$文件。
文件的内容只是一个数字,例如1443972318
删除该文件,然后重新生成该文件,将以不同的编号重新生成该文件。
在重新构建解决方案中的单个项目(一个只有标准C#项目参考/依赖关系+ System.Management)时,也观察到了这种行为。
请注意,运行命令行构建(例如,msbuild <sln-file>确实是而不是)重新生成文件(用于构建完整的解决方案或单个项目)。
在重新启动VS之后,文件将不再重新生成.
据我们所知,这个文件名在我们的任何源代码、post构建步骤或内部依赖项中都没有使用。.NET框架类有相当多的依赖项,包括随机和RNGCryptoServiceProvider,以及外部依赖项。对于所有这些,我们都没有完整的源代码,因此不可能详尽地检查哪些依赖项负责。
这是个暗处的镜头,但问题是有没有人看到过类似的东西?
编辑我并不惊讶这被否决了--我很感谢它是非常开放的,但由于我目前无法复制它,而且它可能会带来潜在的严重后果(随机数生成器攻击?)反正我已经发出去了。如果我能够复制,我当然会在这里更新。
发布于 2016-11-02 14:41:46
我有同样的档案。经过简短的调查,我发现这个文件是由NUnit 3.x测试适配器创建的。(您可以在AdapterSettings.cs中从NUnit适配器源代码中检查它)。
发布于 2016-11-03 20:19:29
NUnit使用该文件来确保在发现和执行过程中使用相同的随机种子值来生成随机测试用例。这是必需的,因为IDE使用两个不同的进程来执行适配器。在vstest.console.exe下运行适配器时,它实际上不是必需的(或创建的)。
https://stackoverflow.com/questions/40364171
复制相似问题