這是事情。當我嘗試在沒有安裝.NET框架的計算機上運行.NET應用程序時,我的.NET應用程序崩潰,出現一個非常難看的常規異常錯誤。是否有可能知道.NET Framework是否從.NET應用程序安裝?
這是正常的嗎?如果是......是否有任何方法來檢查.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