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

.NET Core 6发布应用调用ZipArchive报错:无法加载指定程序集

问题分析与修复方案

问题原因

是的,版本不匹配是引发该异常的核心原因。.NET Core的依赖解析机制会严格匹配程序集版本号,尽管高版本的System.IO.Compression.ZipFile理论上向下兼容6.0.0.0,但如果应用依赖清单明确请求6.0.0.0版本,而发布目录中仅存在更高版本的程序集,运行时就会抛出找不到指定版本的异常。

修复方法

1. 显式引用对应版本的NuGet包

打开项目的.csproj文件,添加或更新System.IO.Compression.ZipFile的包引用,指定与发布目录中实际存在的版本一致的版本号(或直接指定6.0.0版本,确保发布时打包匹配的程序集):

<PackageReference Include="System.IO.Compression.ZipFile" Version="6.0.0" />

保存后重新生成并发布项目,保证发布目录中的程序集版本与依赖清单一致。

2. 配置程序集绑定重定向

在项目根目录创建runtimeconfig.template.json文件,添加版本重定向规则,将对6.0.0.0版本的请求指向发布目录中实际存在的高版本:

{
  "runtimeOptions": {
    "assemblyBinding": {
      "dependencies": [
        {
          "name": "System.IO.Compression.ZipFile",
          "publicKeyToken": "b77a5c561934e089",
          "version": "6.0.0.0",
          "replacementVersion": "6.x.x.x" // 替换为发布目录中实际的版本号,比如6.0.2.0
        }
      ]
    }
  }
}

重新发布项目后,运行时会自动将版本请求重定向到指定的高版本程序集。

3. 检查并调整发布设置

  • 若使用框架依赖部署:确保目标运行时与本地安装的.NET Core Runtime版本匹配,且运行时包含System.IO.Compression.ZipFile 6.0.0.0或兼容版本。
  • 若使用独立部署:在发布设置中勾选“包含所有依赖项”,避免发布时遗漏或错误打包程序集版本。

4. 清理残留文件后重新发布

右键项目选择“清理”,删除发布目录下的所有文件,然后重新生成并发布项目,避免旧版本依赖文件残留导致版本冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 09:16:17