コマンドラインを使用してNupkgファイルを抽出する


105

まず、特定の.nupkgファイルを処理するときにVisual Studioをまったく使用したくありません。

NuGetパッケージエクスプローラーと呼ばれるツールがあり、これを使用してGUIを使用して特定のファイルの場所にnupkgファイルをエクスポートできますが、コマンドラインを使用して約50の.nupkgファイルを実行およびアンパックするようにMSBuildタスクを設定しようとしています。

私の質問は、指定したファイルの場所に.nupkgファイルを解凍するコマンドラインを介して使用できるツールはありますか?

回答:


106

インストールの一部としてローカルホストを指定することにより、NuGetコマンドラインを使用することもできます。たとえば、パッケージが現在のディレクトリに保存されている場合

nuget install MyPackage -Source %cd% -OutputDirectory packages

ターゲットディレクトリに解凍します。


14
MyPackageは実際には.nuspecファイルで指定されたパッケージIDであり、ファイル名ではないことに注意してください。
ロッド

コンソールから管理者権限で実行する必要があります
Sonic Soul

7
Fwiw、powershellでは、コマンドは次のようになります。nuget install MyPackage -Source $ pwd -OutputDirectory packages
Mark Boltuc

%cd%は現在のディレクトリを参照していると思います。ローカルシステムで別のパスを参照するにはどうすればよいですか?パスを使用すると機能しません。"./example/path/"
seanbun

1
-Sourceを機能させるために、ファイルディレクトリへの絶対パスを使用しました。パッケージ名は含めませんでした。
mac10688 2018年

146

NuPKGファイルは単なるzipファイルであるため、zipファイルを処理できるものはすべて、nupkgファイルを処理できる必要があります(7zipなど)。


15
これには条件があります。これは、NuGetがファイル名のある種のエンコーディングを行うように見えることです。したがって、zipツールを使用する場合、たとえば「A + B.txt」という名前のファイルは「A%2B.txt」として抽出されます。これは、(アンディの回答に従って)nuget installを使用することによって回避されます
Oli Wennell

1
ファイルエンコーディングの問題は4.7.0以降で修正されました
Fai

15

名前を.zipに変更してから抽出します。


これは非常に古い質問です。質問に答えないzipに変更しただけの場合、zipツールを使用すると、たとえば「A + B.txt」という名前のファイルが「A」として抽出されます。 %2B.txt "-zipに名前を変更する必要もありません。
ルイス

4

次のように同じことをしました:

clear
cd PACKAGE_DIRECTORY

function Expand-ZIPFile($file, $destination)
{
    $shell = New-Object -ComObject Shell.Application
    $zip = $shell.NameSpace($file)
    foreach($item in $zip.items())
    {
        $shell.Namespace($destination).copyhere($item)
    }
}

Dir *.nupkg | rename-item -newname {  $_.name  -replace ".nupkg",".zip"  }

Expand-ZIPFile "Package.1.0.0.zip" “DESTINATION_PATH”

2
これは、前述のオリ・ウェネルと同じ問題に悩まされていませんか?つまり、たとえば「A + B.txt」は「A%2B.txt」として抽出されますか?
Rahatur

1

PowerShell 5.1(PackageManagementモジュール)

Install-Package -Name MyPackage -Source (Get-Location).Path -Destination C:\outputdirectory

0

これは私のために働きました:

Rename-Item -Path A_Package.nupkg -NewName A_Package.zip

Expand-Archive -Path A_Package.zip -DestinationPath C:\Reference
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.