2010-03-26 45 views
4

所以我有一個使用.NET 3.0的應用程序(工具)。在只有.NET 2.0的機器(如默認的Server 2008 R2安裝)上運行時,它崩潰慘劇。警告.NET Framework要求的用戶

到目前爲止,我所看到的是人們正在使用一個分流器,它將首先檢查.NET版本。 有沒有辦法建立它或以某種方式添加一些清單,以便用戶被警告這個問題(並希望被提示安裝.NET)?

我知道這可以通過安裝程序解決,但我有要求它是一個獨立的可執行文件的要求。 (好吧,這很難解釋,但它與設備驅動程序有關,該工具隨驅動程序一起提供,但如果用戶不使用該工具,則不應強制用戶安裝.NET 3.0。)

我只需要停下來一個神祕的「應用程序失敗,異常0xe0434f4d」的信息,並至少讓用戶瞭解發生了什麼。

+0

而你的要求是你只有一個單一的文件?我會驚訝於任何.NET程序集都能夠告訴用戶他需要安裝框架。 – TalkingCode 2010-03-26 10:57:32

+1

我很想聽聽你的需求,它需要它是一個獨立的可執行文件。 ClickOnce非常適合檢查機器的依賴關係,包括下載和安裝.NET,自動檢查和安裝更新,儘管它確實符合安裝程序的要求,但卻具有極低的侵入性;-) – 2010-03-26 11:04:15

+3

只需說服誰設置了這些要求安裝程序是一個較小的邪惡。沿着這條道路走下去將會無處可去,無論如何你最終都會實現自己的安裝程序。 – dkackman 2010-03-26 13:16:27

回答

4

還沒有測試過這個,但這篇文章about framework detection告訴你如何從代碼中檢測框架版本。我不確定你的應用程序失敗的位置,如果注入這樣的檢查可以解決你的問題,但是如果你不能在你的應用程序中使用它,你可以在舊的.net 2.0中創建一個小的「初學者應用程序」那麼要麼告訴用戶升級或開始你的「真實」的應用程序?

正如我所說,還沒有測試過這種方法,它只是我的頭腦。

+0

+1很好的答案。我打算建議在.NET 2中創建一個「啓動程序」(或任何OP支持的最低限度),但缺乏精確查找.NET版本的方法。 'Environment.Version'只是報告CLR版本,3.0和3.5版本仍然是2.0版本。 – 2010-03-26 11:02:51

+0

這只是我說的分流方法。 – moogs 2010-03-27 02:19:33

+0

通常該檢查應該在安裝者中執行。但是如果是輕量級的,發射器並不是一個壞主意。 – 2010-03-27 03:21:37

4

這對我來說沒有任何意義。你要去哪裏停車?您是否要確保用戶不會將其安裝在Windows 98上?該機器有足夠的內存?用戶帳戶有足夠的權限?

軟件供應商發佈系統要求。您總是會引用最低支持的Windows版本,最小內存量,所需磁盤空間,最低瀏覽器版本等。最低.NET Framework版本也屬於該列表。這個清單的目的很明確:如果你不符合要求,不要指望它能正常工作。如果你這樣做,無論如何,這是你的問題,而不是我的。

對於消費級應用程序,這是不同的。但是,當您安裝到Windows 2008服務器時,您不會編寫消費者應用程序。

+0

我只需要停下來,一個神祕的「應用程序失敗,異常0xe2334abcb」消息,並至少讓用戶瞭解發生了什麼。 – moogs 2010-03-27 02:15:24

+2

花費一兩天或者這個問題尋找可能的解決方案,對於沒有閱讀手冊的用戶(大多數人)來說,值得一小時的支持電話費用。 – moogs 2010-03-27 02:16:59

相關問題