我在这里(答案2)包含了一个在C# .NET 4.0应用程序中的DirectX播放器。问题是当我尝试初始化该对象(即Player mPlayer = new Player())时,出现以下错误:
混合模式程序集是针对版本“v1.1.4322”运行时构建的,在没有其他配置信息的情况下无法加载到4.0运行时中。
有人知道这是什么问题吗?
我修复这个错误的方法是通过更改我的app.config上的'configuration'节点,从这个:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
到这样:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
您需要添加一个 app.Config 文件并将 useLegacyV2RuntimeActivationPolicy
设置为 true。
这是在 .NET 4 应用程序中使用混合模式 CLR 2 组件所必需的。
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
SGEN
,则修复需要在sgen.exe
旁边创建一个名为sgen.exe.config
的文件。例如,对于VS 2015,请创建C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\sgen.exe.config
。来源:SGEN混合模式程序集 最小文件内容:<configuration><startup useLegacyV2RuntimeActivationPolicy="true"/></configuration>
。 - ToolmakerSteve