【问题标题】:How to get the projects having a particular nuget package as reference如何获取具有特定 nuget 包作为参考的项目
【发布时间】:2018-12-12 07:00:16
【问题描述】:

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

我有大约 100 个 Nuget 包。现在,对于每个 nuget 包,我都希望将其作为参考的项目。 即假设我有三个项目 A、B 和 C,并且我有 Nuget 包假设 nHibernate。

当我手动转到每个项目的引用部分时,我看到 nHibernate 在项目 A 和项目 B 中被引用。所以我对该包的依赖项目是 A 和 B。

像这样我想要所有的 nuget 包。我怎么能在没有任何手动任务的情况下做到这一点。有什么我可以使用的命令或方式。

【问题讨论】:

    标签: c# .net nuget nuget-package


    【解决方案1】:

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

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

    1. 展开Externals

    1. 从外部列表中选择您的包并右键单击它并选择New Graph From Selection

    1. 将打开一个新图表。再次右键单击包并选择Show Assemblies Referencing This

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

    您也可以对多个包执行此操作,以查看您选择的所有包的所有依赖项。在第 3 步中,只需按住 CTRL 选择多个包,然后按照相同的步骤操作。

    【讨论】:

      【解决方案2】:

      您可能有多种选择:

      1. 使用文件搜索功能搜索所有packages.config
      2. 编写一个小型控制台应用程序,循环遍历所有文件并将它们添加到 MultiValueDictionary 中,以包为键,值为具有该包的项目。
      3. 有一个node包可以输出使用的包available here
      4. 在 github available here 上有一个 Nuget Package 可视化工具。

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

      【讨论】:

      • 谢谢@Mihail。正如建议的那样,我选择了选项 2。编写了一个小型控制台程序来获得所需的输出。
      猜你喜欢
      • 1970-01-01
      • 2018-07-09
      • 2018-05-21
      • 1970-01-01
      • 2021-04-02
      • 2011-11-02
      • 1970-01-01
      • 2020-07-24
      相关资源
      最近更新 更多