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

Azure ShareClient在一个项目正常运行另一项目抛出程序集加载异常

问题原因

这个报错属于典型的传递依赖版本冲突,触发逻辑如下:
你只给封装Azure逻辑的类库安装了Azure.Storage.Files.Shares 12.8.0,该包本身依赖特定版本的System.Runtime.CompilerServices.Unsafe。两个业务项目虽然没有直接安装Azure相关包,但调用类库时会间接依赖该程序集。两个业务项目本身的框架版本、其他已引用包的依赖版本存在差异,其中一个项目的依赖链里已经有了版本不匹配的System.Runtime.CompilerServices.Unsafe,就会触发清单不匹配的报错。

解决方案
  • 优先采用解决方案级Nuget统一管理依赖:右键解决方案→管理解决方案的Nuget程序包,在已安装标签找到System.Runtime.CompilerServices.Unsafe,勾选所有三个项目(类库+两个业务项目),统一安装同一个版本,优先选择报错提示的4.0.4.1版本,也可选择更高的兼容稳定版。
  • 检查两个业务项目的配置文件(桌面项目是app.config,Web项目是web.config),确认runtime节点下存在正确的程序集重定向规则,缺失则手动补充:
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-你安装的最高版本号" newVersion="你统一安装的实际版本号" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
  • 清理所有项目缓存:关闭Visual Studio,删除三个项目根目录下的bin、obj文件夹,重新打开VS后右键解决方案→执行重新生成。
  • 确认两个业务项目对封装类库的引用是项目引用,而非直接浏览选择dll引用,避免依赖传递失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:36:03