120

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

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

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

4

7 回答 7

167

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

于 2013-05-16T12:23:21.753 回答
119

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

nuget install MyPackage -Source %cd% -OutputDirectory packages

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

于 2015-03-12T21:43:09.853 回答
25

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

于 2019-06-12T11:02:46.197 回答
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”
于 2014-11-13T12:28:21.257 回答
2

使用 PowerShell 5.1(包管理模块)

Install-Package -Name MyPackage -Source (Get-Location).Path -Destination C:\outputdirectory
于 2019-11-20T20:17:49.043 回答
2

这对我有用:

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

Expand-Archive -Path A_Package.zip -DestinationPath C:\Reference
于 2020-02-20T14:54:30.273 回答
0

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

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

于 2021-05-09T23:04:06.323 回答