-->

寻找具有的NuGet第三方许可证(Finding third party licenses with

2019-07-28 19:26发布

我是有点的NuGet新手和有来自Maven的世界。

最近我一直在负责更新我们的项目,第三方许可证信息。 与Maven项目我已经能够使用工作license:download-licenses插件来获得许可信息。

我想知道是,如果有一种方法可以让使用的NuGet这一信息? 优选通过使用命令行界面,所以我可以在CI构建级别自动执行它。 从大手动预生成步骤中移除。

编辑:

因为我无法找到任何工具来做到这一点我放在一起LegSec命令行实用程序 。

Answer 1:

据我所知,没有什么目前可直接在命令行获得的许可信息作为CI构建的一部分。 您需要创建一个应用程序来打开.nupkg zip文件,提取从.nuspec文件的许可证网址,并从这个网址下载许可证。

另外,您可以使用软件包管理器控制台窗口在Visual Studio中并且以位的PowerShell的下载许可文件。

这将获取项目中的所有包的许可文件一个简单的例子如下所示。 这将需要延长以获得在溶液中的所有项目,你应该能够与Get-项目cmdlet来办。 这仍然需要有人来运行该脚本下载许可证。

$wc = New-Object System.Net.WebClient
Get-Package -ProjectName YourProject | ForEach-Object {
    $wc.DownloadFile($_.LicenseUrl, 'd:\licenses\' + $_.Id + ".html")
}


Answer 2:

我设法使用下面的命令许可信息:

@(@(Get-Project -All | ForEach-Object {
    Get-Package -ProjectName $.ProjectName
}) | Select Id -Unique ) | ForEach-Object {
    $pkg = $_
    $pkgId = $_.Id
    if ($pkgId -notlike 'microsoft*') {
        $url = Open-PackagePage $pkgId -License -WhatIf -PassThru
        Write-Host "$pkgId $url"
    }
}


文章来源: Finding third party licenses with Nuget