我是有点的NuGet新手和有来自Maven的世界。
最近我一直在负责更新我们的项目,第三方许可证信息。 与Maven项目我已经能够使用工作license:download-licenses
插件来获得许可信息。
我想知道是,如果有一种方法可以让使用的NuGet这一信息? 优选通过使用命令行界面,所以我可以在CI构建级别自动执行它。 从大手动预生成步骤中移除。
编辑:
因为我无法找到任何工具来做到这一点我放在一起LegSec命令行实用程序 。
我是有点的NuGet新手和有来自Maven的世界。
最近我一直在负责更新我们的项目,第三方许可证信息。 与Maven项目我已经能够使用工作license:download-licenses
插件来获得许可信息。
我想知道是,如果有一种方法可以让使用的NuGet这一信息? 优选通过使用命令行界面,所以我可以在CI构建级别自动执行它。 从大手动预生成步骤中移除。
编辑:
因为我无法找到任何工具来做到这一点我放在一起LegSec命令行实用程序 。
据我所知,没有什么目前可直接在命令行获得的许可信息作为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")
}
我设法使用下面的命令许可信息:
@(@(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"
}
}