它的app.config中的supportedRuntime設置只能在3.5版上運行嗎?例如與SKU?如何將supportedRuntime 3.5設置爲最低?
目前我們遇到的問題是,如果使用.NET Framework 2.0運行,我們的應用程序會崩潰,但找不到錯誤。這給客戶帶來了不好的反饋。
它的app.config中的supportedRuntime設置只能在3.5版上運行嗎?例如與SKU?如何將supportedRuntime 3.5設置爲最低?
目前我們遇到的問題是,如果使用.NET Framework 2.0運行,我們的應用程序會崩潰,但找不到錯誤。這給客戶帶來了不好的反饋。
直到.NET 4.0才支持「sku」屬性
而這不是真正的問題。你沒有依賴於3.5,你有一個在.NET 2.0 SP1或SP2。客戶端運行2.0的RTM版本。微軟在服務包更新中犯了一個錯誤,它隱藏了一些RTM版本中沒有的重載方法。在不改變程序集的[AssemblyVersion]的情況下,它仍然是2.0.0.0
這是非常非常淘氣,並造成了很大的痛苦。在.NET 4中,參考程序集現在不再是GAC中程序集的簡單副本。
基本的方法來解決這個問題:
<supportedRuntime>
僅用於確定CLR版本 - 與框架版本3.5和2.0相同。我不知道知道需要.NET 3.5的啓動參數方面的任何方式的。儘管如此,創建一個首先探測.NET 3.5程序集的入口點應該是相對直接的,並且如果找不到它們會給出友好的錯誤消息。當然,這取決於你正在運行的是什麼樣的應用程序,但是如果它是一個本地GUI(例如WPF或WinForms),那麼它不應該太難。