微軟發布的dotnetfx2.0是相當成功的開發架構,由此產生了大量基於.NET2.0的應用,微軟後來發布的dotnetfx3.0及dotnetfx3.5都是對2.0的擴充,並添加了很多新的特性(如:linq、wpf、wcf、wwf、Lambda、類型推斷及簡化的文法等),但礙於龐大的dotnetfx3.5安裝部署都十分困難,dotnetfx2.0應用依然十分普遍。幾個月以前微軟發布了dotnetfx4.0,其強大的功能讓dotnetfx2.0的優勢消失殆盡,很多新的應用開發已經從.NET4.0開始了。由於.NET4.0使用全新的CLR,因此基於.NET2.0的程式集並不能直接在.NET4.0架構下運行,此時大量的基於dotnetfx2.0應用的升級就成了問題。
雖然不能直接向下相容,但微軟已經提供了比較好的相容性解決方案:運行時目標版本啟用策略。基於.NET2.0的應用程式和程式集只要在設定檔中聲明運行時版本即可在新的架構下運行。對於此解決方案的官方說明在http://msdn.microsoft.com/zh-cn/library/bbx34a2h.aspx。
設定方法:在預設設定檔的根項目configuration下添加以下聲明( 傳統型應用程式為App.config、Web應用程式為Web.config):
1: <startup useLegacyV2RuntimeActivationPolicy="true">
2: <supportedRuntime version="v4.0"/>
3: startup>
這裡Web應用程式的環境配置要複雜一些。當然首先要安裝dotnetfx4.0,如果是先安裝了IIS,則需要手動註冊IIS,註冊命令:
%windows%\Microsoft.NET\Framework\<版本號碼>\aspnet_regiis.exe -i
如果是伺服器版作業系統,則IIS中還有“Web服務擴充”選項,在選項中啟用ASP.NET v4.0.30319服務擴充;然後在網站的屬性中修改ASP .NET版本為v4.0.30319,至此,基於.NET2.0的應用程式就可以在.NET4.0下和WCF、linq等新功能一起運行了。