C# 为什么目标框架版本相同的两个应用程序的.NET版本不同
添加了小代码以在运行时在中查找.NET版本:C# 为什么目标框架版本相同的两个应用程序的.NET版本不同,c#,.net,windows,environment-variables,C#,.net,Windows,Environment Variables,添加了小代码以在运行时在中查找.NET版本: 示例程序 专有应用程序 var version = Environment.Version; Console.WriteLine(version.ToString()); 这两个版本都是使用目标版本.NETFramework4编译的 样本程序输出为4.0.30319.255 专有应用程序输出为2.0.50727.8000 正在编译示例程序并在同一台计算机上运行 该专有应用程序在一台构建机器上编译,并部署在另一台生产
var version = Environment.Version;
Console.WriteLine(version.ToString());
在专有应用程序中,我应该在哪里查找此问题。给我一些提示。首先检查文档: Environment.Version属性 获取描述主版本、次版本、生成版本和 公共语言运行库的修订号 小心 对于.NET Framework 4.5之后的版本,我们不建议使用 Version属性来检测运行时的版本;相反,你 可以通过查询确定公共语言运行库的版本 登记处。有关详细信息,请参阅 有关您的问题的更多说明,请参阅下面的链接:
在2.0与3.0或3.5环境中。版本没有帮助,因为它 始终返回2.0,因为所有这些框架版本都在使用CLR 2.0 也请阅读: 请注意,此就地更换与并排更换非常不同 .NET 2.0和3.0/3.5的附带安装,它们都在2.0版本上运行 CLR的成员。这两个3.x版本基本上是对库的增强 在核心.NET2.0运行时之上。两个版本都在.NET下运行 2.0运行时,在整个3.x周期内没有更改(安全补丁和错误修复除外)。而4.5版本的更新则是完全更新的 替换.NET 4.0运行时并保留设置的实际版本号 在v4.0.30319 参考文献:
环境。Version
提供了CLR使用的版本,而不是.Net framework本身
请参见是否适合您我怀疑您的构建机器上的构建过程会忽略项目文件中指定的目标framework 4,而使用3.5。这可能是由于MSBuild版本及其目标框架造成的。我需要检测为.NET版本4和.NET版本编译的代码的版本2@VikramSingh检查这个