解決方案,在app.config中添加一個配置節:startupapp
1 <?xml version="1.0"?> 2 <configuration> 3 <startup useLegacyV2RuntimeActivationPolicy="true"> 4 <supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/> 5 <supportedRuntime version="v2.0.50727"/> 6 </startup> 7 </configuration>
這段配置節的意思是(參考自MSDN,具體地址:http://msdn.microsoft.com/zh-cn/library/bbx34a2h.aspx):ide
啓用 .NET Framework 2.0 版 運行時激活策略,這是經過使用最新支持的運行時加載全部程序集。spa
注意:因爲config配置文件的特性,若是在config配置文件中存在configSections節點,則必須將configSections放在一個,不然會引起異常:配置系統未能初始化code
在原來.NET2.0,.NET3.5的時候,因爲程序運行環境本質仍是.NET2.0,而到了.NET4.0因爲整個程序集的版本更新,之前使用.NET2.0所編寫的程序集與.NET4.0的程序集繼續擰互操做的時候就會出現上面所說的兼容性問題。xml
經過MSDN,咱們能夠知道,startup配置節中的useLegacyV2RuntimeActivationPolicy屬性是在.NET4.0中新增的,默認是false,表示:blog
使用默認的 .NET Framework 4 激活策略,該激活策略將加載 .NET Framework 4 經過使用公共語言運行時 (CLR) 版本 4 所建立的程序集,以及 CLR 早期版本經過使用受支持的低於版本 4 的最高 CLR 版本所建立的程序集。get
如今若是當程序在.NET4.0環境下要使用.NET2.0及.NET3.5的程序時就必須將useLegacyV2RuntimeActivationPolicy設置爲true,同時還要注意,須要在startup配置節的字節中添加supportedRuntime配置節,並指定爲「v4.0」,表示使用.NET4.0運行時來運行程序。io
有關更多startup及其子級能夠查看MSDN:event
startup:http://msdn.microsoft.com/zh-cn/library/bbx34a2h.aspxclass
supportedRuntime:http://msdn.microsoft.com/zh-cn/library/w4atty68.aspx