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

时间:2010-09-23 11:55:40

标签: c# .net winforms version

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

4 个答案:

答案 0 :(得分:2)

您必须创建一个以.Net 2.0或非托管应用程序编写的 starter 应用程序(如果根本没有安装.Net版本),请先启动它,然后再启动。安装Net 3.5它将启动真正的应用程序,否则它将显示一个很好的错误消息。

但是,更好的解决方案是让您的安装程序安装.Net 3.5,这样您就不必担心它(但这显然不适用于XCopy部署等)。

答案 1 :(得分:2)

在.NET 3.5应用程序中执行此操作会有点困难,因为您永远无法启动应用程序。

通常,这是通过添加启动条件在应用程序的安装程序中完成的。见http://support.microsoft.com/kb/315291

编辑:我发现了一篇文章,解释了如何在.NET应用程序启动之前编写一个非托管应用程序(如ho1的答案所示) http://blogs.msdn.com/b/astebner/archive/2009/01/31/9387659.aspx

答案 2 :(得分:2)

看看这个C ++项目应该做你想要的。

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

您只需设置快捷方式即可启动该应用,然后启动您的.net应用。

从项目说明:

  

例如(测试最低FW 1.1并启动应用程序):

     

dotNetTester.exe 1.1 C:\ Temp \ Myapp.exeC:\ Temp \ Myapp.exe

答案 3 :(得分:1)

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

如果已安装,则用于其他目的 -

使用System.Environment.Version查找您当前使用的版本。

要了解所有已安装的版本,check this

  

枚举HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP的子项。每个子键都是.Net版本。如果它存在于计算机上,则应具有Install = 1值,如果使用MSI安装,则应显示Service Pack的SP值和MSI = 1值。 (例如,Vista上的.Net 2.0没有最后一个,因为它是操作系统的一部分)

您可以访问此注册表项“HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP”并迭代这些值。

相关问题