Как получить проекты, имеющие определенный пакет Nuget в качестве ссылки - PullRequest
0 голосов
/ 12 декабря 2018

У меня около 100 проектов в моем решении .NET.Мне удалось получить все пакеты nuget, используемые в проектах, через консоль диспетчера пакетов с помощью простой команды.

У меня около 100 пакетов Nuget.Теперь для каждого пакета nuget я хочу проекты, которые имеют его в качестве ссылки.т.е. предположим, что у меня есть три проекта A, B и C, и у меня есть пакет Nuget. Предположим, nHibernate.

Вручную, когда я перехожу к разделу ссылок каждого проекта, я вижу, что nHibernate упоминается в Project A и Project B. Так что мой зависимыйПроект для этого пакета - это A и B.

Как этот, я хочу для всех моих пакетов nuget.Как я могу сделать это без каких-либо ручных задач.Например, есть ли какая-нибудь команда или способ, которым я могу воспользоваться.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Если вы используете Visual Studio Enterprise, у вас будут установлены Microsoft Architecture Diagrams и инструменты анализа.

  1. В верхней строке меню выберите Architecture, затем выберите Generate Code Map For Solution

enter image description here

Расширить Externals

enter image description here

В списке внешних объектов выберите пакет, щелкните его правой кнопкой мыши и выберите New Graph From Selection

enter image description here

Откроется новый график.Снова щелкните правой кнопкой мыши на пакете и выберите Show Assemblies Referencing This

enter image description here

Вы получите график кода, показывающий сборки, ссылающиеся на пакет.Теперь вы можете сохранить этот граф кода в отдельной папке с именем пакета для последующего использования.

enter image description here

Вы также можете сделать это для несколькихпакеты, чтобы просмотреть все зависимости всех пакетов, которые вы выбрали.На шаге 3 просто выберите несколько пакетов с нажатой клавишей CTRL и выполните те же шаги.

0 голосов
/ 12 декабря 2018

У вас может быть несколько вариантов:

  1. Поиск по всем packages.config с использованием поиска по файлам
  2. Напишите небольшое консольное приложение, которое перебирает всефайлы и добавьте их в MultiValueDictionary с пакетом в качестве ключа и значениями проектов, которые имеют этот пакет.
  3. Существует узел узла, который может выводить используемые пакеты , доступный здесь .
  4. На github доступен визуализатор пакета Nuget .

Использование варианта 2 дает вам большую гибкость, если у вас / вашей команды есть времянаписать это.Это может быть полезно в конвейере сборки, например, для проверки зависимостей и оповещения о наличии несоответствий.

...