簡體   English   中英

從WinForms應用程序檢查.Net框架版本

[英]Check on .Net framework version from WinForms app

如何在.NET 3.5上編寫的WinForms應用程序啟動時檢查.net框架版本? 如果未安裝.net 3.5,則應用程序應顯示有關它的消息(可能與.net安裝程序或其他方面的鏈接有關)。 現在它顯示了一些用戶不清楚的錯誤。

您必須創建一個以.Net 2.0或非托管應用程序編寫的入門應用程序(如果沒有安裝任何版本的.Net,則覆蓋它)並首先啟動,然后如果安裝了.Net 3.5,它將啟動真實的應用程序,否則它將顯示一個很好的錯誤消息。

但是,更好的解決方案是讓您的安裝程序安裝.Net 3.5,這樣您就不必擔心它(但這顯然不適用於XCopy部署等)。

在.NET 3.5應用程序中執行此操作會有點困難,因為您從未達到應用程序啟動的程度。

通常,這是通過添加啟動條件在應用程序的安裝程序中完成的。 請參見http://support.microsoft.com/kb/315291

編輯:我發現了一篇文章,解釋了如何在.NET應用程序啟動之前編寫一個非托管應用程序(如ho1的回答中所述) http://blogs.msdn.com/b/astebner/archive/2009/01/31 /9387659.aspx

看看這個C ++項目應該做你想要的。

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

您只需設置快捷方式即可啟動該應用,然后啟動您的.net應用。

從項目描述:

例如(測試最低FW 1.1並啟動應用程序):

dotNetTester.exe 1.1 C:\\ Temp \\ Myapp.exeC:\\ Temp \\ Myapp.exe

我重新閱讀了您的問題 - 在未安裝.NET x時無法運行.NET x ver應用程序! 結束。

如果你安裝了它,那么出於其他目的 -

使用System.Environment.Version查找當前使用的版本。

要了解所有已安裝的版本, 請檢查此項

枚舉HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ NET Framework Setup \\ NDP的子項。 每個子鍵都是.Net版本。 如果它存在於計算機上,則應具有Install = 1值,如果使用MSI安裝,則應顯示Service Pack的SP值和MSI = 1值。 (例如Vista上的.Net 2.0沒有最后一個,因為它是操作系統的一部分)

您可以訪問此注冊表項“HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ NET Framework Setup \\ NDP”並迭代值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM