在.NET 4.0 下使用 Dirext3D 托管庫,出現“混合模式程序集是針對“v1.1.4322”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集。”異常信息,查看程序集Microsoft.DirectX.dll、Microsoft.DirectX.Direct3D.dll、Microsoft.DirectX.Direct3DX,發現其.NET 運行時版本時v1.1.4322,也就是說D3D托管庫是在 .NET v1.1 版本下編譯生成的。
在.NET4.0以前,由於程序運行環境本質還是.NET2.0,並且.NET2.0兼容.NET1.0和1.1,但在升級到.NET4.0時,.NET的內核作了重大調整,以前在.Net2.0或.net3.5中生成的程序集,如果要在.net4.0下運行,需要在配置文件中指定此應用程序支持的公共語言運行時版本和啟用 .NET Framework 2.0 運行時激活策略,相應的App.config如下
[html]
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>