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

已安装仍报System.Drawing.Common 8.0.0.0缺失异常,求排查方案

找不到System.Drawing.Common 8.0.0.0的误导性异常排查方案

以下是针对该异常的可能原因及对应解决方法:

  • 间接依赖残留:项目中其他NuGet包可能间接引用了System.Drawing.Common 8.0.0.0,即便删除了自身相关代码,这些依赖仍会触发加载检查。

    • 排查:在NuGet包管理器控制台执行 Get-Package -ProjectName [你的项目名] -AllVersions,找出引用该版本的依赖包。
    • 解决:升级/降级对应依赖包以适配当前版本,或在.csproj中显式添加绑定重定向:
      <ItemGroup>
        <AssemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <DependentAssembly>
            <AssemblyIdentity name="System.Drawing.Common" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
            <BindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="[你实际安装的版本号]" />
          </DependentAssembly>
        </AssemblyBinding>
      </ItemGroup>
      
  • 跨平台运行限制:.NET 6+中System.Drawing.Common仅支持Windows环境,非Windows系统(Linux/macOS)运行时会触发加载错误,提示可能误导为文件缺失。

    • 解决:确认运行环境为Windows;若需跨平台,替换为SkiaSharp、ImageSharp等跨平台图像库。同时检查项目目标框架与组件版本是否兼容(如8.0版本对应.NET 8)。
  • 输出目录缓存问题:旧编译产物残留导致运行时加载错误文件。

    • 解决:右键项目选择「清理」,手动删除bin和obj目录,重新生成解决方案,确保输出目录存在正确版本的System.Drawing.Common.dll。
  • GAC版本冲突:全局程序集缓存(GAC)中存在其他版本的组件,运行时优先加载GAC版本而非项目引用版本。

    • 排查:管理员权限打开命令提示符,执行 gacutil /l System.Drawing.Common 查看GAC中的版本。
    • 解决:执行 gacutil /u System.Drawing.Common,[冲突版本号] 移除冲突版本。
  • 发布部署配置错误:部署时未包含组件DLL文件。

    • 解决:右键引用的System.Drawing.Common,将「复制本地」属性设为True;使用「自包含」模式发布,确保所有依赖项被打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 05:41:07