首先,在处理某些 .nupkg 文件时,我根本不想使用 Visual Studio。
我知道有一个名为 NuGet Package Explorer 的工具,它可以使用 gui 将 nupkg 文件导出到某个文件位置,但我希望设置一个 MSBuild 任务来运行和解压缩大约 50 个 .nupkg 文件,使用命令行。
我的问题是,有没有可以通过命令行使用的工具,可以将 .nupkg 文件解压到指定的文件位置?
NuPKG 文件只是 zip 文件,因此任何可以处理 zip 文件的文件都应该能够处理 nupkg 文件,即 7zip。
您还可以通过将本地主机指定为安装的一部分来使用 NuGet 命令行。例如,如果您的包存储在当前目录中
nuget install MyPackage -Source %cd% -OutputDirectory packages
将其解压缩到目标目录中。
将其重命名为 .zip,然后解压缩。
做了同样的事情:
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”
使用 PowerShell 5.1(包管理模块)
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
我已经用 7-zip 扩展了 Zamarin.Essentials -version 1.6.1 并且 nuget 包管理器无法识别这个包,我将源设置为所有。我也只尝试过我的全局包源。
另外我注意到包管理器将多个版本下载到同一个文件夹,想知道是否可以将版本文件夹放入包中并将包端复制到其中?