在 .NET Framework 4.0 的程序中使用 .NET Framework 2.0 的程序集
場景
在 目標(biāo)框架 為 .NET Framework 4 的程序中,引用 目標(biāo)框架 為 .NET Framework 2.0 的程序集,并使用 .NET Framework 2.0 程序集中的類型或者靜態(tài)方法。
問題
一般情況下,會報出如下錯誤
未經(jīng)處理的異常: System.IO.FileLoadException: 混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集。
解決
文檔參考
在 .NET Framework 的文檔 中 配置文件架構(gòu) 這一節(jié)對上述問題有解決方法。詳見 <startup> 元素 中關(guān)于 useLegacyV2RuntimeActivationPolicy 特性的描述。
簡單來說
當(dāng)你需要且不得不在 目標(biāo)框架 為 .NET Framework 4 的程序中,引用 目標(biāo)框架 為 .NET Framework 2.0 的程序集,那么你應(yīng)該修改程序配置文件。
一般來說,程序配置文件在項目根目錄中,名為 “app.config” 。 默認(rèn)內(nèi)容如下:
<?xml version="1.0"?> <configuration><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> </configuration>如果你項目中沒有的話,可以手動添加,并在 “csproj” 文件中添加一條:
<ItemGroup><None Include="app.config" /> </ItemGroup>根據(jù) <startup> 元素 中的說法,你需要將“app.config”配置文件修改為:
<?xml version="1.0"?> <configuration><startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> </configuration>即可在程序中引用目標(biāo)框架 為 .NET Framework 2.0 的程序集。
發(fā)布事項
當(dāng)程序 Release 之后,在 Release 文件夾中會同時生成 “xxx.exe.config” 文件,此文件就是程序的配置文件。假如你沒有使用默認(rèn)配置,那么在發(fā)布時,此文件應(yīng)隨可執(zhí)行程序一同發(fā)布,且保持在同一文件夾中。否則,程序?qū)褂媚J(rèn)配置。
其他
關(guān)于程序的配置文件,更多詳細(xì)內(nèi)容可以參閱 .NET Framework 的配置文件架構(gòu) 。
轉(zhuǎn)載于:https://www.cnblogs.com/chr-wonder/p/8527602.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的在 .NET Framework 4.0 的程序中使用 .NET Framework 2.0 的程序集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 强迫症犯了,忍不住赞一下slf4j包Lo
- 下一篇: 创建性设计模式之2--建造者模式