我有一个在.net 3.5 SP1上运行的应用程序,它应该检查是否安装了.net 4。
实际上,如果安装了MSBuild v4,我会更感兴趣,这可归结为一个简单的File.Exists(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe");
然而,除了4.0.30319版本(和Windir,但这很容易解决)的脆弱性之外,我想知道是否有更合适的方式,比如API?
答案 0 :(得分:1)
我看到this blog post但是希望@JaredPar或者类似的东西会更整洁!
(仍在寻找干净地推导出安装方式的方法
我怀疑对于.NET版本,.buildnumber位保证在RTM(甚至是SP)之后不会移动
记住框架(vs Framework64)位也不一定稳定[并且如引用的博客文章的评论中指出的那样,你可能需要将Wow6432Node考虑到注册表这一方面]
您实际上是在使用msbuild.exe的路径之后还是需要知道.NET 4是否存在? MSBuild中的任何预定义符号是否有用/反映到msbuild.exe中会产生什么?)