在 目標框架 爲 .NET Framework 4 的程序中,引用 目標框架 爲 .NET Framework 2.0 的程序集,並使用 .NET Framework 2.0 程序集中的類型或者靜態方法。架構
通常狀況下,會報出以下錯誤app
未經處理的異常: System.IO.FileLoadException: 混合模式程序集是針對「v2.0.50727」版的運行時生成的,在沒有配置其餘信息的狀況下,沒法在 4.0 運行時中加載該程序集。框架
在 .NET Framework 的文檔 中 配置文件架構 這一節對上述問題有解決方法。詳見 <startup> 元素 中關於 useLegacyV2RuntimeActivationPolicy
特性的描述。code
當你須要且不得不在 目標框架 爲 .NET Framework 4 的程序中,引用 目標框架 爲 .NET Framework 2.0 的程序集,那麼你應該修改程序配置文件。xml
通常來講,程序配置文件在項目根目錄中,名爲 「app.config」 。 默認內容以下:element
<?xml version="1.0"?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> </configuration>
若是你項目中沒有的話,能夠手動添加,並在 「csproj」 文件中添加一條:文檔
<ItemGroup> <None Include="app.config" /> </ItemGroup>
根據 <startup> 元素 中的說法,你須要將「app.config」配置文件修改成:get
<?xml version="1.0"?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> </configuration>
便可在程序中引用目標框架 爲 .NET Framework 2.0 的程序集。io
當程序 Release 以後,在 Release 文件夾中會同時生成 「xxx.exe.config」 文件,此文件就是程序的配置文件。假如你沒有使用默認配置,那麼在發佈時,此文件應隨可執行程序一同發佈,且保持在同一文件夾中。不然,程序將會使用默認配置。配置
關於程序的配置文件,更多詳細內容能夠參閱 .NET Framework 的配置文件架構 。