在运行时添加了用于查找.NET版本的小代码:
专有应用。
var version = Environment.Version;
Console.WriteLine(version.ToString());
两者都是使用目标版本.NET Framework 4编译的。
示例程序输出 4.0.30319.255
专有应用输出 2.0.50727.8000
正在编译样本编程并在同一台机器上运行。
此专有应用程序正在一台构建计算机上编译并部署在其他生产计算机上。
为什么这种版本的差异存在。
我应该在专有应用中查找此问题。给我一些指示。
答案 0 :(得分:1)
首先检查文档:
Environment.Version Property
获取一个描述major,minor,build和的Version对象 公共语言运行时的修订号。
<强>注意强>
对于.NET Framework 4.5以后,我们不建议使用 Version属性,用于检测运行时的版本;相反,你 可以通过查询确定公共语言运行库的版本 注册表。有关详细信息,请参阅How to: Determine Which .NET Framework Versions Are Installed。
请参阅以下链接,了解有关您的问题的更多说明:
How do I detect at runtime that .NET version 4.5 is currently running your code?
2.0 vs. 3.0或3.5 Environment.Version没有任何帮助,因为它 因为所有这些框架版本都在使用CLR,所以总是返回2.0 2.0。
也可以阅读:NET Versioning and Multi-Targeting - .NET 4.5 is an in-place upgrade to .NET 4.0
请注意,这种就地替换与侧面非常不同 所有在2.0版本上运行的.NET 2.0和3.0 / 3.5的侧面安装 CLR。这两个3.x版本基本上是库增强功能 在核心.NET 2.0运行时之上。这两个版本都在.NET下运行 2.0运行时整个3.x周期没有改变(除了安全补丁和错误修复)。 4.5完全更新 替换.NET 4.0运行时并保留实际版本号 在v4.0.30319
<强>参考文献:强>
Why does System.Environment.Version report framework 2?
答案 1 :(得分:0)
Environment.Version
为您提供CLR使用的版本,而不是.Net框架本身
请参阅How do I detect at runtime that .NET version 4.5 is currently running your code?