Win10下WinForms C#项目引用类库遇System.Drawing.Common平台不支持异常求助
解决System.PlatformNotSupportedException异常(Win10下WinForms类库调用System.Drawing)
问题原因
你遇到的异常本质是类库项目的目标框架配置不匹配:从.NET 6开始,System.Drawing.Common被标记为Windows专属组件。如果你的类库项目目标框架是通用跨平台版本(比如net6.0而非net6.0-windows),或者是.NET Standard,即使主WinForms项目运行在Win10上,类库仍会被视为跨平台环境,从而触发该异常。
修复方案(无需改动项目核心逻辑)
方案1:修改类库的目标框架为Windows专属版本
- 右键你的类库项目 → 选择「属性」
- 切换到「应用」标签页
- 在「目标框架」下拉菜单中,选择和主WinForms项目一致的带Windows后缀的框架版本(比如主项目是
net6.0-windows,类库也选net6.0-windows) - 保存设置并重新编译整个解决方案
方案2:在类库的.csproj中添加强制Windows兼容配置
如果不想修改目标框架,可以手动编辑类库的.csproj文件,添加以下配置:
<PropertyGroup> <!-- 启用Windows Forms支持,确保System.Drawing.Common正常工作 --> <UseWindowsForms>true</UseWindowsForms> <!-- 针对.NET 6+的兼容性配置 --> <EnableWindowsFormsCompatibility>true</EnableWindowsFormsCompatibility> </PropertyGroup>
保存后重新编译即可。
验证
重新运行项目,在Form1_Paint方法中传递e.Graphics给类库的Vehicle.draw方法时,异常应该会消失。
内容的提问来源于stack exchange,提问作者StreakerOne
相关产品推荐
相关产品推荐

