如何获得具有特定nuget包作为参考的项目

时间:2018-12-12 07:00:17

标签: c# .net nuget nuget-package

.NET解决方案中有大约100个项目。我设法通过一个简单的命令通过Package Manager控制台获取了项目中使用的所有nuget软件包。

我大约有100个Nuget软件包。现在,对于每个nuget包,我都希望有引用它的项目。 也就是说,假设我有三个项目A,B和C,并且我有Nuget软件包,假设它是nHibernate。

手动进入每个项目的引用部分时,我看到nHibernate在项目A和项目B中被引用。因此,该程序包的依存项目是A和B。

像这样,我想要所有我的nuget包。没有任何手动任务怎么办?就像我可以使用的任何命令或方式一样。

2 个答案:

答案 0 :(得分:1)

您可能有很多选择:

  1. 使用文件中的搜索来搜索所有D/ConnectivityManager.CallbackHandler: CM callback handler got msg 524290
  2. 编写一个小型控制台应用程序,该应用程序循环浏览所有文件,并将其添加到packages.config中,并以该包为键,并包含该包的项目的值。
  3. 有一个节点程序包,可以输出available here使用的程序包。
  4. 在github available here上有一个Nuget Package可视化工具。

如果您/您的团队有时间编写选项2,则使用选项2将为您提供最大的灵活性。例如,这在构建管道中检查依赖项并发出警报时可能很有用。

答案 1 :(得分:1)

如果您使用的是Visual Studio Enterprise,则将安装Microsoft体系结构图和分析工具。

  1. 从顶部菜单栏中选择Architecture,然后选择Generate Code Map For Solution

enter image description here

  1. 展开Externals

enter image description here

  1. 从外部列表中选择您的软件包,然后右键单击它,然后选择New Graph From Selection

enter image description here

  1. 将打开一个新图。再次右键单击该程序包,然后选择Show Assemblies Referencing This

enter image description here

  1. 您将获得一个代码图,显示引用程序包的程序集。现在,您可以将此代码图保存在带有软件包名称的单独文件夹中,以供以后使用。

enter image description here

您还可以对多个软件包执行此操作,以查看所选所有软件包的所有依赖关系。在第3步中,只需按下CTRL键选择多个程序包,然后执行相同的步骤即可。