开发者

Detecting if MSBuild/.net 4 is installed from C# code running on 3.5?

I have an application that is running on .net 3.5 SP1 and that is supposed to check if .net 4 is installed.

Actually, I'm more interested if MSBuild v4 is installed, which would boil down to a simple File.Exists(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe");

However, apart from the fragility of the 开发者_如何学Python4.0.30319 Version (and the Windir, but that's easy to solve), I wonder if there is a more appropriate way, like an API?


I saw this blog post but hope a @JaredPar or similar will be in with something neater!

(Still looking for way to derive install dir cleanly

I suspec that for a .NET version, the .buildnumber bit is guaranteed not to move after RTM (or even even SPs)

Remember the Framework (vs Framework64) bit is also not necessarily stable [and as pointed out in the comments to the cited blog article, you may need to take Wow6432Node into account for the registry side of this]

Are you actually after the path to msbuild.exe or do you need to know if .NET 4 is present? Are any predefined symbols in MSBuild useful / does reflectoring into msbuild.exe yield anything?)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜