这就是事情。当我尝试在没有安装.NET框架的机器中运行它时,我的.NET应用程序崩溃了一个非常难看的一般异常错误。
这是正常的吗?如果是......有没有办法检查.NET框架是否能够优雅地退出?
答案 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这一事实都打败了这两个。