.NET 6控制台调用方法报System.Windows.Forms文件未找到如何解决
修复方案
问题根因
该报错是因为.NET 6 控制台项目默认未启用Windows桌面运行时支持,你之前手动引入的System.Windows.Forms.dll仅包含基础类型定义,方法调用时CLR需要加载完整的程序集依赖链却找不到对应版本的文件,这也解释了你可以正常创建对象,但调用方法时才抛出异常的现象。
操作步骤
- 修改项目配置文件(.csproj)
替换原有配置内容,示例如下:<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <!-- 保留控制台输出能力,不要改为WinExe --> <OutputType>Exe</OutputType> <!-- 如需同时兼容.NET Framework 4.8可替换为 <TargetFrameworks>net6.0-windows;net48</TargetFrameworks> --> <TargetFramework>net6.0-windows</TargetFramework> <!-- 启用官方Windows Forms自动引用 --> <UseWindowsForms>true</UseWindowsForms> <Nullable>enable</Nullable> </PropertyGroup> </Project> - 清理无效引用
删除你之前手动添加的第三方System.Windows.Forms.dll引用,修改完上述配置后,SDK会自动引入匹配版本的官方程序集,无需手动管理引用。 - 重新生成项目
清理解决方案,删除项目根目录下的bin、obj缓存文件夹后重新生成即可。
效果验证
修改完成后你的控制台项目会完整继承Windows Forms项目的程序集引用规则,同时保留控制台的输入输出能力,完全满足使用控制台模板开发的要求。
内容的提问来源于stack exchange,提问作者Sergei Chernyahovsky
相关产品推荐
相关产品推荐

