项目无直接引用却生成System.Drawing.Common.dll,如何查看版本并更新?
如何查看并更新间接引用的System.Drawing.Common.dll版本
你遇到的情况是典型的间接依赖:项目里没直接引用System.Drawing.Common,但你引用的某个NuGet包、类库或第三方组件依赖了它,.NET构建时会自动把这类依赖的dll复制到输出目录。
一、查看当前版本
方法1:文件属性查看
找到project/bin/Debug/net6.0/System.Drawing.Common.dll,右键→属性→详细信息,查看「文件版本」或「产品版本」即可。
方法2:命令行快速查询
打开终端切换到输出目录,执行PowerShell命令:
(Get-Item .\System.Drawing.Common.dll).VersionInfo.ProductVersion
或者用dotnet CLI查看完整依赖链里的版本:
dotnet list package --include-transitive
在输出结果里找到System.Drawing.Common,对应的就是当前使用的版本。
方法3:Visual Studio图形界面查看
右键项目→管理NuGet程序包→切换到「已安装」标签,展开「依赖项」节点,找到System.Drawing.Common就能看到版本号。
二、更新版本
方式1:强制指定版本(最直接)
打开你的csproj文件,添加显式的PackageReference配置,指定你需要的版本(比如.NET 6兼容的最新稳定版):
<PackageReference Include="System.Drawing.Common" Version="6.0.0" />
保存后重新构建,输出目录里的dll就会替换成你指定的版本。这种方式会覆盖所有间接依赖的版本,优先级最高。
方式2:更新上游依赖包
用dotnet list package --include-transitive命令找到哪个直接引用的包依赖了System.Drawing.Common,然后把那个上游包更新到最新版本——如果上游包已经升级了对System.Drawing.Common的依赖,间接引用的版本也会同步升级。
内容的提问来源于stack exchange,提问作者Neil Kelsey
相关产品推荐
相关产品推荐

