使用命令行提取Nupkg文件

时间:2013-05-16 12:20:44

标签: nuget

首先,在处理某些.nupkg文件时,我根本不想使用Visual Studio。

我知道有一个名为NuGet Package Explorer的工具,它可以使用gui将nupkg文件导出到某个文件位置,但是我想设置一个MSBuild任务来运行和解压缩大约50个.nupkg文件,使用命令行。

我的问题是,您是否可以通过命令行使用该工具将.nupkg文件解压缩到指定的文件位置?

7 个答案:

答案 0 :(得分:121)

NuPKG文件只是zip文件,所以任何可以处理zip文件的东西都应该能够处理nupkg文件,即7zip。

答案 1 :(得分:93)

您还可以使用NuGet命令行,方法是将本地主机指定为安装的一部分。例如,如果您的包存储在当前目录中

nuget install MyPackage -Source %cd% -OutputDirectory packages

会将其解压缩到目标目录中。

答案 2 :(得分:3)

做了同样的事情:

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”

答案 3 :(得分:1)

这对我有用:

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

Expand-Archive -Path A_Package.zip -DestinationPath C:\Reference

答案 4 :(得分:0)

将文件重命名为 .zip ,然后将其解压缩。

答案 5 :(得分:0)

使用PowerShell 5.1(PackageManagement模块)

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

答案 6 :(得分:0)

我已经用 7-zip 扩展了 Zamarin.Essentials -version 1.6.1 并且 nuget 包管理器无法识别这个包,我已经将源设置为全部。 我也只尝试过我的全局包源。

我还注意到包管理器将多个版本下载到同一个文件夹中,想知道是否可以将版本文件夹放在包中并将包末尾复制到其中?