如何讓基於.NET 2.0的應用在高版本的系統上運行?


    我們的WinForm項目是基於.NET 2.0開發的,在部署時,發現有些機器沒有.NET 2.0,但是即使這些機器有裝.NET 2.0 以上的版本,也無法運行我們的程序。這就比較蛋疼了。    

    我們查了一下,發現windows各個版本中自帶的.NET Framework的版本是這樣的:  

windows版本

.net framework版本

winxp

無  (注:xp sp1 則自帶了 .net 2.0)

win7

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

win8

.net 4.5

win10

.net 4.5

 

 

 

 

 

 

 

 

 

    在winxp上安裝.NET 2.0 是非常容易的,但是要在win8和win10上安裝.NET 2.0,就不是那么順利了,經常遇到無法降級的情況。

    我想,既然高版本的.NET Framework幾乎是完全兼容.NET 2.0的, 那么,有沒有辦法讓基於.NET 2.0的應用直接在高版本的.NET上運行了?

    經過一番摸索,終於找到了解決方案,那就是在配置文件中加上所支持的.NET的版本即可。    

解決方法

(1)在.NET 2.0程序項目下的應用程序配置文件 App.config 中,

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v2.0.50727"/>
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

      這幾行配置的意思是:如果系統中有.NET 4.0+時,就使用.NET 4.0+,否則,就使用.NET 2.0。

(2)重新編譯生成程序。

      如此一來,幾乎所有的電腦都可以直接跑我們的.NET 2.0的WinForm程序了,除了那些極少數連補丁都沒打的WinXP系統。

 


免責聲明!

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



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