명령 줄을 사용하여 Nupkg 파일 추출


105

첫째, 특정 .nupkg 파일을 다룰 때 Visual Studio를 전혀 사용하고 싶지 않습니다.

NuGet Package Explorer라는 도구가 있으며 GUI를 사용하여 nupkg 파일을 특정 파일 위치로 내보낼 수 있다는 것을 알고 있지만 명령 줄을 사용하여 약 50 개의 .nupkg 파일을 실행하고 압축을 푸는 MSBuild 작업을 설정하려고합니다.

제 질문은 명령 줄을 통해 .nupkg 파일을 지정된 파일 위치에 압축을 풀 수있는 도구가 있습니까?

답변:


106

설치의 일부로 로컬 호스트를 지정하여 NuGet 명령 줄을 사용할 수도 있습니다. 예를 들어 패키지가 현재 디렉토리에 저장된 경우

nuget install MyPackage -Source %cd% -OutputDirectory packages

대상 디렉토리에 압축을 풉니 다.


15
MyPackage는 실제로 파일 이름이 아니라 .nuspec 파일에 지정된 패키지 ID입니다.
Rod

관리자 권한으로 콘솔에서 실행해야합니다
Sonic Soul

7
FWIW는 PowerShell에서 같은 명령 외모 : myPackage에 -source $ PWD -OutputDirectory 패키지를 설치 nuget
마크 Boltuc에게

% cd %가 현재 디렉토리를 가리키는 것 같습니다. 내 로컬 시스템에서 다른 경로를 어떻게 참조 할 수 있습니까? 경로를 사용할 때 작동하지 않습니다. "./example/path/"
seanbun

1
-Source가 나를 위해 작동하도록 파일 디렉토리의 절대 경로를 사용했습니다. 나는 패키지 이름을 포함하지 않았습니다.
mac10688

146

NuPKG 파일은 zip 파일 일 뿐이므로 zip 파일을 처리 할 수있는 모든 파일은 nupkg 파일, 즉 7zip을 처리 할 수 ​​있어야합니다.


15
여기에는 NuGet이 일종의 파일 이름 인코딩을 수행하는 것 같다는 단서가 있습니다. 따라서 zip 도구를 사용하는 경우 예를 들어 원래 이름이 "A + B.txt"인 파일은 "A % 2B.txt"로 추출됩니다. 이것은 너겟 설치를 사용하여 피할 수 있습니다 (Andy의 답변에 따라)
Oli Wennell 2015

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
Oli Wennell이 위에서 언급 한 것과 동일한 문제가 발생합니까? 예를 들어 "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.