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

.NET 6.0迁移后运行报标准库相关FileNotFoundException如何解决

.NET 4.X 迁移 .NET 6.0 System.Drawing.Common 加载异常解决方案

1. 补充Windows专属运行时配置

.NET 6 中 System.Drawing.Common 为Windows专属组件,默认不会被非Windows桌面项目加载,需要在项目.csproj文件的<PropertyGroup>节点下添加对应配置:

<!-- WinForms项目添加该项 -->
<UseWindowsForms>true</UseWindowsForms>
<!-- WPF项目添加该项 -->
<UseWPF>true</UseWPF>
<!-- 显式声明仅支持Windows平台 -->
<SupportedOSPlatform>windows</SupportedOSPlatform>

若项目需要跨平台运行,System.Drawing.Common 从.NET 7开始已正式标记为Windows-only,建议替换为ImageSharp、SkiaSharp等跨平台绘图类库。

2. 核对NuGet包版本一致性

  • 确认安装的System.Drawing.Common、Microsoft.Win32.SystemEvents包大版本和项目目标框架匹配,.NET 6 项目请使用6.0.x版本的包,不要安装7.0/8.0等更高版本,避免版本绑定不匹配。
  • 检查项目依赖的其他第三方类库是否引用了不同版本的上述两个包,避免依赖冲突。

3. 清理缓存后重新生成

  • 关闭Visual Studio,删除项目根目录下的.vs隐藏文件夹,以及所有项目的bin、obj文件夹
  • 重新打开解决方案,右键点击解决方案选择「恢复NuGet包」
  • 完整重新生成解决方案后再运行测试

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

如果项目存在多版本依赖冲突,可在App.config文件的<runtime>节点下添加绑定重定向规则:

<dependentAssembly>
  <assemblyIdentity name="System.Drawing.Common" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
  <assemblyIdentity name="Microsoft.Win32.SystemEvents" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:54:03