You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 2.0加载.NET 3.5混合模式程序集运行时错误求解

解决ASP.NET Core 2.0中加载.NET 3.5混合模式程序集的问题

这个错误我之前处理过,本质是因为AForge.Video.FFMPEG这类混合模式程序集(同时包含托管和非托管代码)是基于.NET 2.0 runtime编译的,而.NET 4.x+的CLR默认不会以兼容模式加载它们。不过在你这种目标为.NET Framework 4.7的ASP.NET Core项目里,依然可以通过配置useLegacyV2RuntimeActivationPolicy来解决,只是配置位置和传统.NET项目略有不同,具体步骤如下:

核心解决方案:添加Runtime配置

因为你的ASP.NET Core项目基于.NET Framework 4.7,我们可以通过修改配置文件启用旧版runtime激活策略:

  1. 找到/创建项目的配置文件
    如果是部署到IIS的ASP.NET Core项目,根目录下应该已经有web.config;如果是自托管的控制台型ASP.NET Core项目,可以在项目根目录添加一个app.config文件。

  2. 插入runtime配置节
    在配置文件的<configuration>节点内,添加以下代码:

    <runtime>
      <useLegacyV2RuntimeActivationPolicy enabled="true" />
      <!-- 如果需要程序集版本重定向,可在此添加assemblyBinding节点 -->
    </runtime>
    

    这个配置会让CLR采用.NET 2.0时代的程序集激活策略,从而允许加载基于v2.0.50727编译的混合模式程序集。

额外注意事项

  • 确保依赖文件复制到位:AForge.Video.FFMPEG依赖一些非托管DLL文件,要确保这些文件被复制到ASP.NET Core项目的输出目录(可以在引用的类库或程序集属性里设置“复制本地”为true)。
  • 验证项目目标框架:确认你的ASP.NET Core项目确实是目标.NET Framework 4.7,而非跨平台的.NET Core/.NET 5+,因为useLegacyV2RuntimeActivationPolicy仅对基于.NET Framework的应用生效。

内容的提问来源于stack exchange,提问作者macfly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:36:46