簡體   English   中英

在VS2015中獲取Nuget軟件包的許可證

[英]Get licenses for the Nuget Packages in VS2015

有什么方法可以下載Nuget軟件包許可證? 我知道這已經受到質疑/回答,但我希望可以在VS2015 Update 2中使用。有一個Powershell腳本來檢查我的項目,然后創建.txt文件,其文件名帶有許可證URL。

我已經設法通過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軟件包,但是如果您需要它們,可以輕松修改代碼。

這段代碼基於這篇文章中的代碼。 而且我確信它可以改進,因為我對Powershell的了解並不多。

使用NuGet 3,PowerShell當前不提供許可證URL。

它已添加到NuGet 3.4中

其他StackOverflow答案中的簡單PowerShell腳本可與NuGet 3.4一起使用。

如果您使用的是較舊版本的NuGet 3,則可以編寫一些代碼,這些代碼將查看NuGet軟件包(.nupkg)中的.nuspec文件,並從那里讀取許可證URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM