我从http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27541安装了.NET 4.5 Developer预览版,它取代了.NET 4.0版本.
但是,检测.NET框架版本的旧方法似乎返回4.0(更准确地说是我的PC上的4.0.30319.17020),而不是4.5(确定可能是为了向后兼容,或者?):
using System;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
var version = Environment.Version;
Console.WriteLine(version.ToString());
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何检测我的代码是否真的由.NET 4.5执行?
我的实际问题是我遇到了两个版本的.NET 4.5完整设置:
50,349,920a5e81d1b3905ada0a6e35fd6c6a2e1f450,352,408d02dc8b69a702a47c083278938c4d2f1这两个设置的版本是4.5.50709.17929.在内部,主要的区别是netfx_Full.mzz文件,但在使用7-zip解压缩内容后,我最终得到了大量具有相同版本的文件,即使文件内容不同(我已经检查了大约42个的大约20个随机文件)所以我无法确定哪一个更新.
有没有办法可靠地检测已安装的.NET 4.5运行时的实际版本,所以我只能在真正需要时运行安装程序?
更新
我检查了所有具有不同内容的426个文件,并且它们在两个设置中都具有相同的ProductVersion和FileVersion.因此,注册表或文件校验和是下一步.
更新2
注册表中列出的版本对于两个设置都是相同的: 4.5.50709
更新3
.NET 4.5.2现已推出:
此版本的.NET Framework与.NET Framework 3.5 SP1和早期版本并行运行,但对.NET Framework 4,.NET Framework 4.5和.NET Framework 4.5.1执行就地更新.