Инструмент или сценарий для извлечения всех лицензий NuGet, используемых в решении.

Есть ли инструмент или скрипт, который может извлекать библиотеки и их лицензии в одном файле?

Вход: корневая исходная папка

C:\src\project_bananna

Вывод: текстовый файл, возможно, в формате csv.

+----------------------------+-----------+--------- ----+
| NuGet-пакет | Версия | Лицензии |
+----------------------------+-----------+--------- ----+
| JQuery | 1.4 | Лицензия Массачусетского технологического института |
| Json.NET | 7 | Лицензия Массачусетского технологического института |
| ... | ... | ... |
+----------------------------+-----------+--------- ----+

Ответы (1)

Это все, что я смог получить с помощью Package Manager Console .

Консоль диспетчера пакетов — это консоль PowerShell в Visual Studio, используемая для взаимодействия с NuGet и автоматизации Visual Studio.

Единственная проблема заключается в том, что из того, что я видел, нет (простого) способа получить желаемый тип лицензии, только URL-адрес лицензии . В любом случае, это дает вам представление о том, с чего начать, и может быть достаточным для вашей цели.

Я использовал командлет Get-Package : откройте консоль диспетчера пакетов и введите следующее, заменив OUTPUT_CSV путем и именем выходного CSV-файла, который вы хотите создать:

Get-Package | Select-Object Id,Version,LicenseUrl | Export-Csv OUTPUT_CSV -NoTypeInformation

Я протестировал его со своим случайным проектом, и это содержимое выходного CSV-файла:

"Id","Version","LicenseUrl"
"Google.Apis","1.9.1","http://www.apache.org/licenses/LICENSE-2.0"
"Google.Apis.Auth","1.9.0","http://www.apache.org/licenses/LICENSE-2.0"
"Google.Apis.Core","1.9.1","http://www.apache.org/licenses/LICENSE-2.0"
"Google.Apis.YouTube.v3","1.9.0.1360","http://www.apache.org/licenses/LICENSE-2.0"
"log4net","2.0.3","http://logging.apache.org/log4net/license.html"
"Microsoft.Bcl","1.1.9","http://go.microsoft.com/fwlink/?LinkId=329770"
"Microsoft.Bcl.Async","1.0.168","http://go.microsoft.com/fwlink/?LinkId=329770"
"Microsoft.Bcl.Build","1.0.14","http://go.microsoft.com/fwlink/?LinkId=329770"
"Microsoft.Net.Http","2.2.28","http://go.microsoft.com/fwlink/?LinkId=329770"
"Newtonsoft.Json","6.0.8","https://raw.github.com/JamesNK/Newtonsoft.Json/master/LICENSE.md"
"Zlib.Portable","1.10.0","http://en.wikipedia.org/wiki/Zlib_License"