我们注意到,在某个开发机上,C#解决方案的Visual Studio(2015年更新3)调试版本正在与每个生成的DLL一起生成$ RANDOM_SEED $文件。
文件的内容只是一个数字,例如 1443972318
删除文件然后重新生成导致重新生成文件,但编号不同。
在解决方案中重建单个项目(仅包含标准C#项目引用/依赖关系+ System.Management的项目)时,也观察到此行为。
需要注意的是运行命令行构建如msbuild <sln-file>
没有不重新生成文件(完整的解决方案或单个项目的版本)。
VS重新启动后,将不再重新生成文件。
据我们所知,我们的任何源代码,构建后步骤或内部依赖项均未使用此文件名。.NET框架类有很多依赖项,包括Random和RNGCryptoServiceProvider以及外部依赖项。我们没有所有这些代码的完整源代码,因此无法详尽地检查哪个依赖项负责。
这是黑暗中的一枪,但问题是有人看到过类似的东西吗?
编辑我对此并不感到惊讶-我很欣赏它是开放式的,但是由于我目前无法重现它,并且它可能会带来严重的后果(随机数生成器攻击?),我还是将其发布了。如果我能够进行复制,我当然会在这里进行更新。
我有相同的文件。经过简短的调查,我发现有罪:该文件是由NUnit 3.x测试适配器创建的。(您可以从NUnit适配器源代码的AdapterSettings.cs中对其进行检查)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句