首先,在处理某些.nupkg文件时,我根本不想使用Visual Studio。
我知道有一个名为NuGet Package Explorer的工具,它可以使用gui将nupkg文件导出到某个文件位置,但是我想设置一个MSBuild任务来运行和解压缩大约50个.nupkg文件,使用命令行。
我的问题是,您是否可以通过命令行使用该工具将.nupkg文件解压缩到指定的文件位置?
答案 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 包管理器无法识别这个包,我已经将源设置为全部。 我也只尝试过我的全局包源。
我还注意到包管理器将多个版本下载到同一个文件夹中,想知道是否可以将版本文件夹放在包中并将包末尾复制到其中?