首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual生成的$RANDOM_SEED$解决方案生成的C#文件是什么?

Visual生成的$RANDOM_SEED$解决方案生成的C#文件是什么?
EN

Stack Overflow用户
提问于 2016-11-01 16:20:44
回答 2查看 2.2K关注 0票数 16

我们注意到,在特定的开发机器上,Visual (2015年更新3)调试C#解决方案的生成是在每个生成的DLL旁边生成一个$RANDOM_SEED$文件。

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

删除该文件,然后重新生成该文件,将以不同的编号重新生成该文件。

在重新构建解决方案中的单个项目(一个只有标准C#项目参考/依赖关系+ System.Management)时,也观察到了这种行为。

请注意,运行命令行构建(例如,msbuild <sln-file>确实是而不是)重新生成文件(用于构建完整的解决方案或单个项目)。

在重新启动VS之后,文件将不再重新生成.

据我们所知,这个文件名在我们的任何源代码、post构建步骤或内部依赖项中都没有使用。.NET框架类有相当多的依赖项,包括随机和RNGCryptoServiceProvider,以及外部依赖项。对于所有这些,我们都没有完整的源代码,因此不可能详尽地检查哪些依赖项负责。

这是个暗处的镜头,但问题是有没有人看到过类似的东西?

编辑我并不惊讶这被否决了--我很感谢它是非常开放的,但由于我目前无法复制它,而且它可能会带来潜在的严重后果(随机数生成器攻击?)反正我已经发出去了。如果我能够复制,我当然会在这里更新。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-02 14:41:46

我有同样的档案。经过简短的调查,我发现这个文件是由NUnit 3.x测试适配器创建的。(您可以在AdapterSettings.cs中从NUnit适配器源代码中检查它)。

票数 12
EN

Stack Overflow用户

发布于 2016-11-03 20:19:29

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

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40364171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档