为什么mscorlib版本在.NET Framework 4.0中是4.6.x?

Tom*_*bes 2 c# .net-4.0 mscorlib

我运行针对.NET Framework 4.0的应用程序.然后我打开模块来检查使用了哪些库.我看到mscorlib版本是4.6.96.0.但在输出窗口中,我可以看到Framework 4.0已加载?我相信该应用程序使用.NET Framework 4.0.我不明白为什么mscorlib的版本是4.6.96.0.为什么会这样?什么意思"建立:NETFXREL2STAGE" - 请看截图.截图.

Han*_*ant 6

该调试器窗口显示DLL 的文件版本.作为DLL中的非托管资源嵌入,VERSION资源,每个正确构建的可执行文件都有一个.对于.NET程序集,它由程序集链接器从[ AssemblyFileVersion ]属性生成.每个DLL版本的文件版本都会更改.它仅用于文档角色,不在运行时使用.与.NET FileVersionInfo.FileVersion属性进行比较.请注意它是一个字符串而不是数字.

与[ AssemblyVersion ]属性不同,CLR用于确定程序集的真正重要的属性是兼容的.对于4.x框架中的所有mscorlib.dll版本,它是4.0.0.0.对于.NET版本2.0到3.5SP1,它是2.0.0.0.您无法在该对话框中看到它.当您查看"详细信息"选项卡时,不是使用资源管理器,这是一个非常棘手的问题.

NETFXREL2STAGE是Redmond中的构建机器,它创建了该文件.不知道为什么微软认为包含这些信息是有用的.

请参阅Stackoverflow问题AssemblyVersion,AssemblyFileVersion和AssemblyInformationalVersion之间有什么区别?