12

私は少しNuGetの初心者で、Mavenの世界から来ました。

最近、私はプロジェクトのサードパーティライセンス情報を更新する任務を負っています。Mavenプロジェクトでの作業では、license:download-licensesプラグインを使用してライセンス情報を取得することができました。

Nugetを使用してこの情報を取得する方法があるかどうか疑問に思っていますか?できれば、コマンドラインインターフェイスを使用して、CIビルドレベルで自動化できるようにします。大規模な手動プレビルドステップから削除します。

編集:

これを行うためのユーティリティが見つからなかったので、LegSecコマンドラインユーティリティをまとめました。

4

2 に答える 2

13

私の知る限り、CIビルドの一部としてコマンドラインから直接ライセンス情報を取得するために現在利用できるものはありません。.nu​​pkg zipファイルを開き、.nuspecファイルからライセンスURLを抽出し、このURLからライセンスをダウンロードするアプリケーションを作成する必要があります。

または、Visual Studio内のパッケージマネージャーコンソールウィンドウを使用し、PowerShellを少し使用してライセンスファイルをダウンロードすることもできます。

プロジェクト内のすべてのパッケージのライセンスファイルを取得する簡単な例を以下に示します。Get-Projectコマンドレットで実行できるはずのソリューション内のすべてのプロジェクトを取得するには、これを拡張する必要があります。これでも、ライセンスをダウンロードするために誰かがスクリプトを実行する必要があります。

$wc = New-Object System.Net.WebClient
Get-Package -ProjectName YourProject | ForEach-Object {
    $wc.DownloadFile($_.LicenseUrl, 'd:\licenses\' + $_.Id + ".html")
}
于 2012-04-07T15:06:54.637 に答える
0

次のコマンドでライセンス情報を取得できました。

@(@(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"
    }
}
于 2015-09-30T16:02:15.200 に答える