是否有可能知道.NET Framework是否从.NET应用程序安装?
问题描述:
这是事情。当我尝试在没有安装.NET框架的计算机上运行.NET应用程序时,我的.NET应用程序崩溃,出现一个非常难看的常规异常错误。是否有可能知道.NET Framework是否从.NET应用程序安装?
这是正常的吗?如果是......是否有任何方法来检查.NET框架是否能够正常退出?
答
由于无法在加载.NET运行时之前执行,因此无法使用托管的代码检查.NET框架的版本号。您可以使用CLR Unmanaged API执行此操作,但解决此问题的最佳方法是提供一种安装机制,用于在计算机上未安装.NET Framework的情况下检查,下载和安装.NET Framework。
答
我想,必须在安装程序脚本中进行检查。
答
您可以在非托管代码中编写存根以执行此操作,但是先决条件通常是您创建安装应用程序的原因。
答
看看.NET框架客户端配置文件(http://msdn.microsoft.com/en-us/library/cc656912.aspx):
.NET框架客户端配置文件提供了一个共同的引导程序的设置,您可以使用您的客户端应用程序。这确保安装运行应用程序的所有要求,而不管.NET Framework的哪个版本(如果有)。安装体验提供了一致的用户界面(UI)和无缝安装,无论目标操作系统是Windows XP还是Windows Vista。
答
如果打包到安装程序中,您可以设置安装条件来检查.NET和框架版本。
另一种方式来检查框架是:
System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory;
System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion;
从O'Reilly的食谱。
但是,这两个都是因为.NET必须在代码甚至可以开始检查之前安装的事实。
更大的问题是:哪些机器没有安装.NET? – leppie 2009-02-27 10:51:02