是否可以知道.NET Framework是否是从.NET应用程序安装的?

时间:2009-02-27 10:22:03

标签: .net installation

这就是事情。当我尝试在没有安装.NET框架的机器中运行它时,我的.NET应用程序崩溃了一个非常难看的一般异常错误。

这是正常的吗?如果是......有没有办法检查.NET框架是否能够优雅地退出?

5 个答案:

答案 0 :(得分:7)

您无法使用托管代码检查.NET框架的版本号,因为它在加载.NET运行时之前无法执行。您可以使用CLR Unmanaged API来执行此操作,但解决此问题的最佳方法是提供一种安装机制,以检查,下载和安装.NET Framework(如果它未安装在计算机上)。

答案 1 :(得分:2)

您可以在非托管代码中编写存根来执行此操作,但先决条件通常是创建安装应用程序的原因。

答案 2 :(得分:1)

查看.NET Framework客户端配置文件(http://msdn.microsoft.com/en-us/library/cc656912.aspx):

  

.NET Framework Client Profile提供了一个可用于客户端应用程序的通用引导程序设置。这可确保安装运行应用程序的所有要求,无论.NET Framework的版本(如果有)存在。无论目标操作系统是Windows XP还是Windows Vista,安装体验都可提供一致的用户界面(UI)和无缝安装。

答案 3 :(得分:0)

我想你必须在安装程序脚本中进行检查。

答案 4 :(得分:0)

如果它打包在安装程序中,您可以设置安装条件以检查.NET和框架版本。

检查框架的另一种方法是:

System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory;
System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion;

来自O'Reilly Cookbook。

但是在代码甚至可以开始检查之前必须安装.NET这一事实都打败了这两个。