E-R*_*Riz 2 .net c# dependency-management nuget
在具有大量<PackageReference>依赖项的项目/解决方案中,可能很难找到被引入的传递依赖项的来源。例如,我的解决方案中没有任何项目直接引用 System.Data.SqlClient 包,但有些东西正在拉动它在传递。在具有大量直接包引用的大型解决方案或项目中,“手动”跟踪几乎是不可能的。
是否有任何现成的方法(例如,.Net CLI 命令的组合)可以在给定特定包的情况下找到并显示传递引用的来源?我使用 Rider,它有一些很棒的代码导航和“发现”类型的工具,但我找不到任何有助于我实现目标的东西。
注意:我也有 VisualStudio,如果它在某处内置了这个功能,我只需要一个指向哪里/如何的指针。
Kim*_*Kim 26
一个名为 的自定义工具dotnet depends非常适合查看反向依赖关系。
dotnet tool install --global dotnet-dependsdotnet depends .\MyProject.csproj如果将鼠标悬停在传递包上,Visual Studio 中的
NuGet 6.3也会显示这一点。
EM0*_*EM0 21
在 VS 中搜索对我来说不起作用,至少对像 System.Net.Http 这样的 BCL 包不起作用。有效的是在obj\project.assets.json中查找,其中列出了所有依赖项。
这是在树上搜索每个包的手动过程:在"dependencies"另一个包的节点下找到目标包,例如:
"Some.Other.Package/1.0.0": {
...
"dependencies": {
...
"System.Net.Http": "4.3.4"
}
}
Run Code Online (Sandbox Code Playgroud)
...然后对该包重复(本例中为“Some.Other.Package”),直到到达直接引用的包。
https://github.com/jerriepelser-blog/AnalyzeDotNetProject有代码可以自动执行此操作,但我还没有尝试过。
该功能内置于最新的 Visual Studio 2019 中。
使用 Visual Studio 2019 Update 6,我可以看到如下内容:
请注意,您还可以通过在解决方案资源管理器中搜索来发现包。
不幸的是,它在 NuGet 包管理器安装视图中尚不可用。
| 归档时间: |
|
| 查看次数: |
824 次 |
| 最近记录: |