使用命令行提取 Nupkg 文件

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

I know there is a tool called NuGet Package Explorer and this can export nupkg files to a certain file location using a gui, but I'm looking to setup a MSBuild task to run and unpack about 50 .nupkg files, using the command line.

我的问题是,是否有一个工具,您可以通过命令行使用,将解压缩。Nupkg 文件到指定的文件位置?

193866 次浏览

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

像这样做同样的事情:

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”

您还可以使用 NuGet 命令行,将本地主机指定为安装的一部分。例如,如果你的包存放在工作目录

nuget install MyPackage -Source %cd% -OutputDirectory packages

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

Rename it to 。压缩, then extract it.

使用 PowerShell 5.1(PackageManagement 模块)

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

这对我很有效:

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


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

我扩大了扎马林。基本要素-版本1.6.1与7-zip 和 nuget 包管理器是不承认这个包,我有源码设置为所有。 我也试过只使用我的全球软件包来源。

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