如何检查.Net Framework是否已安装

在开始我的应用程序之前(在表单加载上)我想检查并确保在机器上安装.NET框架(3.5或更高版本) – 如果不是我想提示用户下载并安装它(带有INTERNET的简单MessageBox)链接到Microsoft WebPage是不是最好的主意?)所以,这实际上需要两个问题……

a)如何安装.NET FrameWork 3.5或更高版本,如何确定? (我不信任或只想找C:\ Program Files \ Microsoft.NET文件夹,似乎容易出错?不会看到这是非常关键的,在C#中必须有一个很好的方法来确定什么版本用户在他的机器上运行的.NET? 我只是不知道如何..

b)如何在MessageBox中粘贴INTERNET LINK(超链接?)? 因此,如果用户没有安装.NET框架(1.1或2.0),我可以让他们只需点击链接即可下载吗?

任何帮助/提示将不胜感激。

谢谢,丁

a)您必须使用非.NET语言(C ++,VB6等)而不是Form_Load来引导程序(其他海报是正确的 – 如果未安装框架,则.NET程序将无法运行)。 这里有一个例子:

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

b)您不能在MessageBox中放置超链接,因此您必须创建自己的弹出对话框(表单)。 编辑:该表单/对话必须在引导程序中。

您无法从您的应用程序执行此操作。 应用程序将无法启动。

您可以做的一个选项是进行ClickOnce安装,以validation是否已安装.NET。

你不能在.NET中这样做,因为这首先需要.NET。 但是,您可以创建将执行检查的本机应用程序,而不是启动.NET应用程序。 这篇文章解释了如何检测.NET框架版本 。

没有框架,您的代码将无法运行,因此您将无法显示该对话框。

此检查应在安装时完成。

那么你想制作一个.NET应用程序来检查机器上是否安装了.NET?

如果未安装.NET Framework,您如何假设该程序首先启动?

这个问题毫无意义。

作者希望能够检测是否安装了.NET Framework 3.5,但提供了.NET Framework 1.1和/或.NET Framework 2.0的链接。 除了事实上你可以轻松地构建一个与Paint.net完全相同的安装项目(尽管它们确实有一个引导程序),你可以确保安装正确版本的.NET Framework。

如果安装的唯一内容是.NET Framework 1.1,并且您没有为您的用户安装.NET Framework 4.0 / 3.5,则会出现严重问题。

如果您推动.NET Framework 4.0,那么您无法帮助您的程序员。