Estrazione dei file Nupkg utilizzando la riga di comando


105

In primo luogo, non voglio affatto utilizzare Visual Studio quando si tratta di determinati file .nupkg.

So che esiste uno strumento chiamato NuGet Package Explorer e questo può esportare file nupkg in un determinato percorso di file utilizzando una gui, ma sto cercando di impostare un'attività MSBuild per eseguire e decomprimere circa 50 file .nupkg, utilizzando la riga di comando.

La mia domanda è: esiste uno strumento che puoi utilizzare tramite la riga di comando che decomprimerà i file .nupkg in una posizione file specificata?

Risposte:


106

Puoi anche usare la riga di comando NuGet, specificando un host locale come parte di un'installazione. Ad esempio, se il tuo pacchetto è archiviato nella directory corrente

nuget install MyPackage -Source %cd% -OutputDirectory packages

lo decomprimerà nella directory di destinazione.


14
Solo una nota che MyPackage è in realtà un ID pacchetto specificato nel file .nuspec e non un nome file.
Rod

e devi eseguirlo da console con privilegi di amministratore
Sonic Soul

7
Fwiw, in PowerShell il comando è simile a: nuget install MyPackage -Source $ pwd -OutputDirectory packages
Mark Boltuc

Immagino che% cd% si riferisca alla directory corrente. Come posso fare riferimento a percorsi diversi nel mio sistema locale? non funziona quando utilizzo un percorso. "./example/path/"
seanbun

1
Ho usato il percorso assoluto della directory del file per far funzionare la -Source per me. Non ho incluso il nome del pacchetto.
mac10688

146

I file NuPKG sono solo file zip, quindi tutto ciò che può elaborare un file zip dovrebbe essere in grado di elaborare un file nupkg, cioè 7zip.


15
C'è una condizione con questo, ovvero che NuGet sembra eseguire una sorta di codifica dei nomi di file. Quindi, se utilizzi uno strumento zip, un file chiamato originariamente "A + B.txt", ad esempio, verrà estratto come "A% 2B.txt". Questo viene evitato utilizzando l'installazione di nuget (come da risposta di Andy)
Oli Wennell

1
il problema di codifica del file è stato risolto in 4.7.0+
Fai

15

Rinominalo in .zip , quindi estrailo.


Questa è una domanda estremamente vecchia, e se la cambi in uno zip che non risponderà alla domanda, se utilizzi uno strumento zip, un file che hai originariamente chiamato "A + B.txt", ad esempio, verrà estratto come "A % 2B.txt "- Inoltre non è necessario rinominarlo in zip.
Lewis il

4

ha fatto la stessa cosa in questo modo:

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
Questo soffre dello stesso problema di cui ha parlato Oli Wennell sopra? ad esempio "A + B.txt" verrà estratto come "A% 2B.txt"?
Rahatur

1

Con PowerShell 5.1 (modulo PackageManagement)

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

0

Questo ha funzionato per me:

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

Expand-Archive -Path A_Package.zip -DestinationPath C:\Reference
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.