如何追踪输出目录中DLL对应的NuGet包?以BouncyCastle.Crypto.dll为例
查找间接依赖的NuGet包方法
针对你遇到的情况,以下是几种简便的查找方式:
Visual Studio 内置工具
- 使用依赖关系图:右键解决方案 → 选择"查看依赖关系",在弹出窗口中展开所有项目的依赖树,或直接在搜索框输入
BouncyCastle.Crypto快速定位对应的NuGet包。 - 查看锁定文件:每个采用PackageReference的项目会生成
[项目名].csproj.nuget.g.props、[项目名].csproj.nuget.g.targets,或直接查看解决方案根目录的packages.lock.json,搜索BouncyCastle.Crypto即可看到它被哪个直接依赖包引入。
ReSharper 工具
- 依赖分析功能:在解决方案资源管理器中右键任意项目 → 选择"ReSharper" → "分析" → "查看依赖关系",在分析窗口筛选包含
BouncyCastle.Crypto的依赖链,明确上游直接依赖包。 - 全局搜索DLL关联项:使用ReSharper的全局搜索(快捷键Ctrl+Shift+F)搜索
BouncyCastle.Crypto.dll,在结果中找到对应的NuGet包引用记录。
dotnet CLI 命令
- 列出所有依赖包:在解决方案根目录执行
该命令会列出所有直接和间接依赖的NuGet包,搜索dotnet list package --include-transitiveBouncyCastle即可找到对应包名和版本。 - 追踪依赖引入路径:执行
在输出日志中搜索dotnet msbuild /t:Restore /v:diagBouncyCastle.Crypto,可追踪到它被哪个上游包引入。 - 查看包自身依赖(若已知包名):比如已知包为
BouncyCastle.NetCore,执行
可验证其依赖关系,但更直接的是用前两个命令定位上游依赖。dotnet nuget show BouncyCastle.NetCore --dependencies
另外,也可查看输出目录中BouncyCastle.Crypto.dll的文件属性,部分DLL会在"产品名称"或"公司"字段标注对应的NuGet包名称,不过这种方式并非所有包都适用。
内容的提问来源于stack exchange,提问作者Oleg Oshkoderov
相关产品推荐
相关产品推荐

