winform .net2.0的程序如何運行於.net 4.x


約束

最近有一個winform項目,要求:

(1)程序能夠運行在winxp, win7, win8, win10中

(2)安裝盡可能簡單,盡量不要安裝.net framework。即使要安裝也要盡可以地小。

 

為了達成這些要求的,考慮以下因素:

(1)操作系統自帶的.net framework版本

以下是各個windows版本自帶的.net framework:

windows版本

.net framework版本

winxp

win7

.net 3.5(包含.net3.0 .net2.0)

win8

.net 4.5

win10

.net 4.5

(2)各種操作系統的使用率

以下是2016-2017年百度統計中的操作系統占比

clip_image002

可以看到win7占有率最高,其次是winxp。

綜合以上兩上因素,決定程序的目標框架選擇.net 2.0。這樣一來,只有winxp需要安裝.net framework 2.0,且.net framework 2.0僅20M。

 

問題

本來以為程序應當可以在各個操作系統上正常運行的。

但是在測試的時候,發現在win8和win10下會出現以下錯誤:

clip_image004

選擇在線安裝的話,速度慢得無法接受;

離線采用添加應用程序組件安裝的話,需要系統光盤,很麻煩,用戶無法接受;

離線安裝dotnetfx2.0.exe或者dotnetfx35.exe也會出現上圖的提示。

 

解決方法

在查看了msdn上的文檔之后,找到了解決方法。添加一個app.config文件,加入以下配置:

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 
 3 <configuration>
 4 
 5     <startup>
 6 
 7         <supportedRuntime version="v4.0"/>
 8 
 9        <supportedRuntime version="v2.0.50727"/>
10 
11     </startup>
12 
13 </configuration>

 

配置的意思是:當發現.net4.x時,使用.net4.x,當沒有.net4.x的時候,使用.net2.0

 

參考資料

How to: Configure an App to Support .NET Framework 4 or 4.5

https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-configure-an-app-to-support-net-framework-4-or-4-5


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM