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

含Application Insights与EF的WebJob项目程序集加载异常求助

解决WebJob集成Application Insights与EF时的System.IO.FileLoadException错误

我之前在WebJobs项目里结合Entity Framework和Application Insights时,也碰到过一模一样的程序集版本冲突问题,这种System.IO.FileLoadException真的挺让人头疼的,尤其是自动生成绑定重定向还不生效的情况。下面是我亲测有效的几个解决方案,你可以逐一尝试:

1. 手动添加程序集绑定重定向

自动生成绑定重定向有时候在WebJob项目里会失效,不如直接手动在项目的app.config里添加明确的重定向规则,强制把0.0.0.0版本的引用指向你本地的4.0.2.0版本:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" 
                          publicKeyToken="b03f5f7f11d50a3a"
                          culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" 
                         newVersion="4.0.2.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

添加之后记得保存,然后清理并重建项目。

2. 统一NuGet包版本,排查兼容性问题

你使用的Microsoft.Azure.WebJobs.Logging.ApplicationInsights是2.1.0-beta4的预览版,这类预览包很容易和其他库(比如EF的.NET Standard依赖)产生版本冲突。建议:

  • 把这个预览包升级到最新的稳定版,稳定版的依赖兼容性会更好
  • 打开NuGet包管理器的「管理解决方案的NuGet包」,搜索System.Runtime.InteropServices.RuntimeInformation,确保所有项目(包括你引入的EF代码库)都使用同一个版本的这个包,避免跨项目依赖版本不一致

3. 清理项目缓存,重新构建

有时候项目的bin/obj文件夹里会残留旧的程序集,导致版本混淆。你可以:

  • 右键解决方案,选择「清理解决方案」
  • 手动删除所有项目下的bin和obj文件夹
  • 重新右键解决方案,选择「还原NuGet包」
  • 最后重新构建整个解决方案

4. 检查项目目标框架版本

WebJob项目如果是基于.NET Framework,确保目标框架版本是4.6.1及以上。因为System.Runtime.InteropServices.RuntimeInformation是在.NET Framework 4.6才引入的,低版本框架不仅不原生支持这个库,还会和EF的.NET Standard依赖产生兼容问题。你可以右键WebJob项目→「属性」→「应用程序」里查看和修改目标框架。

5. 排查EF代码库的依赖

如果上述方法都没用,建议单独检查你引入的EF代码库:

  • 看看这个库是否依赖了特定版本的.NET Standard组件,是否和WebJob项目的依赖冲突
  • 尝试新建一个空的WebJob项目,只添加EF代码库,运行看看是否会触发同样的错误,逐步排查是EF库本身的问题,还是和Application Insights组合后的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:31:27