首先,我不想在處理某些.nupkg文件時使用Visual Studio。使用命令行提取Nupkg文件
我知道有一個名爲NuGet Package Explorer的工具,它可以使用gui將nupkg文件導出到某個文件位置,但是我正在設置一個MSBuild任務來運行並解壓約50個.nupkg文件,命令行。
我的問題是,有沒有一種工具可以通過命令行使用,將解包.nupkg文件到指定的文件位置?
首先,我不想在處理某些.nupkg文件時使用Visual Studio。使用命令行提取Nupkg文件
我知道有一個名爲NuGet Package Explorer的工具,它可以使用gui將nupkg文件導出到某個文件位置,但是我正在設置一個MSBuild任務來運行並解壓約50個.nupkg文件,命令行。
我的問題是,有沒有一種工具可以通過命令行使用,將解包.nupkg文件到指定的文件位置?
您還可以使用的NuGet命令行,通過指定一個本地主機的安裝部分。例如,如果您的包存儲在當前目錄中
nuget install MyPackage -Source %cd% -OutputDirectory packages
會將其解包到目標目錄中。
NuPKG文件只是zip文件,所以任何可以處理zip文件的文件都應該能夠處理nupkg文件,即7zip。
這是一個附帶條件,這是NuGet似乎做某種編碼的文件名。因此,如果您使用壓縮工具,則例如將原始名稱爲「A + B.txt」的文件解壓縮爲「A%2B.txt」。這可以通過使用nuget安裝來避免(根據Andy的回答) –
做這樣相同的事情:
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」
這個問題與Oli Wennell提到的相同嗎?即例如「A + B.txt」將被提取爲「A%2B.txt」? – Rahatur
這是問題的真正答案! 10x – mynkow
只需注意MyPackage實際上是在.nuspec文件中指定的Package ID,而不是文件名。 – Rod
,你必須從管理員權限的控制檯執行它 –