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

.NET项目加载AutoMapper程序集失败问题求助

解决AutoMapper程序集加载失败问题

你在.NET Core 2.0类库(含DB上下文)和.NET Framework 4.6.1 Azure函数项目中,调用db.ExecuteProcedureQuery<ApiAttendanceModel>(...)时触发的AutoMapper加载错误,本质是跨框架项目的依赖版本或部署问题,我整理了几个针对性的解决方法:

1. 统一两个项目的AutoMapper版本

首先看你错误里提到的是AutoMapper 6.1.1.0,必须让Azure函数项目和类库项目引用完全相同版本的AutoMapper NuGet包。不要只在类库中引用,函数项目要直接安装对应版本,避免间接引用导致的版本不匹配:

Install-Package AutoMapper -Version 6.1.1

2. 确保程序集被复制到函数输出目录

Azure函数运行时需要依赖程序集存在于bin目录中,所以:

  • 右键Azure函数项目中引用的AutoMapper包(或类库项目),打开属性面板
  • 将复制本地设置为True,这样编译时程序集会被自动复制到输出目录
  • 同时检查类库项目中AutoMapper的复制本地属性,确保它能被输出到类库的bin目录,进而被函数项目复制

3. 处理跨框架兼容性问题

AutoMapper 6.x是支持.NET Framework 4.6.1和.NET Core 2.0的,但要注意:

  • 不要在类库中安装仅针对.NET Core的扩展包(比如AutoMapper.Extensions.Microsoft.DependencyInjection),如果已经装了,在函数项目中也要同步安装对应版本的扩展,或者直接改用基础的AutoMapper包,减少框架兼容问题

4. 添加绑定重定向(针对.NET Framework项目)

打开Azure函数项目的app.config(如果没有就新建一个),添加AutoMapper的绑定重定向,强制所有引用指向正确版本:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="AutoMapper" publicKeyToken="be96cd2c38ef1005" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-6.1.1.0" newVersion="6.1.1.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

这能解决项目中潜在的多版本AutoMapper引用冲突。

5. 清理重建解决方案

旧的编译缓存可能导致依赖异常,按以下步骤操作:

  • 右键解决方案 → 选择「清理解决方案」
  • 手动删除两个项目的bin和obj目录
  • 重新生成整个解决方案,确保所有依赖都被正确部署

如果还是不行,去Azure函数项目的输出目录(通常是bin\Debug\net461)检查AutoMapper.dll是否存在,且版本为6.1.1.0。也可以尝试升级AutoMapper到6.x的最新版本(比如6.2.2),它的跨框架兼容性会更好,但记得两个项目要同步升级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:52:54