使用Nuget寻找第三方许可证

Kle*_*lee 12 licensing nuget

我是一个NuGet新手,来自Maven世界.

最近我的任务是更新我们项目的第三方许可证信息.使用Maven项目我已经能够使用该license:download-licenses插件获取许可证信息.

我想知道的是,如果有办法使用Nuget获取此信息?最好使用命令行界面,这样我就可以在CI构建级别自动化它.要从大型手动预构建步骤中删除它.

编辑:

由于我无法找到任何实用程序来执行此操作,因此我将LegSec命令行实用程序放在一起.

Mat*_*ard 12

据我所知,目前没有任何东西可以直接从命令行获取许可证信息,作为CI构建的一部分.您需要创建一个应用程序来打开.nupkg zip文件,从.nuspec文件中提取许可URL并从此URL下载许可证.

或者,您可以使用Visual Studio中的包管理器控制台窗口,并使用PowerShell下载许可证文件.

获取项目中所有包的许可文件的简单示例如下所示.这需要扩展以获得解决方案中您应该能够使用Get-Project cmdlet执行的所有项目.这仍然需要有人运行脚本来下载许可证.

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

  • 只需注意 - 在VS2015中,"LicenseUrl"始终返回一个空字符串.NuGet文档说'LicenseUrl'将在病房的v3.x上弃用,但是没有提到任何替代品 (2认同)
  • LicenseUrl已添加回NuGet 3.4或更高版本. (2认同)