【问题标题】:Get licenses for the Nuget Packages in VS2015在 VS2015 中获取 Nuget 包的许可证
【发布时间】:2016-05-04 18:01:45
【问题描述】:

有没有办法可以下载 Nuget Packages 许可证?我知道这已经被质疑/回答了,但我想要一些与 VS2015 Update 2 一起使用的东西。有一个 powershell 脚本来检查我的项目,然后创建 .txt 文件,或者具有带有许可证 url 的包名称。

【问题讨论】:

    标签: powershell nuget powershell-3.0 nuget-package


    【解决方案1】:

    我已经设法获得了 Visual Studio 2015 Update 2 的许可证列表:

    Split-Path -parent $dte.Solution.FileName | cd; New-Item -ItemType Directory -Force -Path ".\licenses"; @( Get-Project -All | ? { $_.ProjectName } | % { Get-Package -ProjectName $_.ProjectName | ? { $_.LicenseUrl } } ) | Sort-Object Id -Unique | % { $pkg = $_; Try { if ($_.Id -notlike 'microsoft*' -and $_.LicenseUrl.StartsWith('http')) { Write-Host ("Download license for package" + $pkg.Id + " from " + $pkg.LicenseUrl); (New-Object System.Net.WebClient).DownloadFile($_.LicenseUrl, (Join-Path (pwd) 'licenses\') + $_.Id + ".html"); } } Catch [system.exception] { Write-Host ("Could not download license for" + $pkg.Id) }  }
    

    您可能需要修改下载路径,目前它会在解决方案文件夹中创建 licenses 子文件夹并在那里下载。它还会过滤掉所有 Microsoft 软件包,但如果您需要它们,可以轻松修改代码。

    此代码基于 this 帖子中的代码。而且我确信它可以改进,因为我对 powershell 不太熟悉。

    【讨论】:

      【解决方案2】:

      当前无法从带有 NuGet 3 的 PowerShell 中获得许可证 URL。

      已添加到NuGet 3.4

      另一个StackOverflow answer 中的简单 PowerShell 脚本适用于 NuGet 3.4。

      如果您使用的是旧版本的 NuGet 3,您需要编写一些代码来查看 NuGet 包 (.nupkg) 中的 .nuspec 文件并从那里读取许可证 URL。

      【讨论】:

      • 我有 Nuget 3.4.3 但仍然无法运行以下命令 @( Get-Project -All | ? { $_.ProjectName } | % { Get-Package -ProjectName $_.ProjectName } ) |排序 - 唯一 | % { $pkg = $_ ;尝试 { (New-Object System.Net.WebClient).DownloadFile($pkg.LicenseUrl, 'c:\dev\licenses\' + $pkg.Id + ".txt") } Catch [system.exception] { Write-主机“无法下载 $pkg 的许可证”} }
      • 来自其他 StackOverflow answer 的脚本适用于 NuGet 3.4.3。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多