从WinForms应用程序中检查.Net框架版本

6

如何在编写于.NET 3.5上的WinForms应用程序启动时检查.NET框架版本?如果未安装.NET 3.5,则应用程序应显示有关此问题的消息(可以附带.NET安装程序或其他链接)。现在它显示一些对用户不清楚的错误。


2
当你的.Net 3.5应用程序没有安装.Net 3.5框架时,你希望它如何运行?你看到这个进退两难的情况了吗? - slugster
4个回答

2
你需要创建一个起始应用程序,可以使用 .Net 2.0 或非托管应用程序编写(以覆盖如果没有安装任何 .Net 版本的情况),首先启动该应用程序,然后如果安装了 .Net 3.5,则启动真正的应用程序,否则将显示一个友好的错误消息。
然而,更好的解决方案是让你的安装程序安装 .Net 3.5,这样就不必担心它了(但这显然无法用于 XCopy 部署等)。

2

2
检查一下这个 C++ 项目,它应该能够满足你的要求。

http://www.codeproject.com/KB/mcpp/DotNetTester.aspx

你只需要设置快捷方式来启动该应用程序,然后该应用程序会启动你的 .net 应用程序。
从项目描述中可以看到:
例如(测试最低为 1.1 版框架并启动应用程序):
dotNetTester.exe 1.1 C:\Temp\Myapp.exeC:\Temp\Myapp.exe

1

我重新阅读了您的问题 - 没有安装 .NET x 时,无法运行 .NET x 版应用程序!结束。

如果已安装,则可供其他用途使用 System.Environment.Version 查找当前使用的版本。

要了解所有已安装的版本,请 查看此链接

枚举 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP 的子键。每个子键都是一个 .Net 版本。如果存在于计算机上,则应该具有 Install=1 值,显示服务包的 SP 值以及如果使用 MSI 安装则具有 MSI=1 值。(例如,Vista 上的 .Net 2.0 就没有最后一个值,因为它是 OS 的一部分)

您可以访问此注册表键 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP" 并迭代其值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接