好的,這裏是我爲命令行更新所做的一些初始工作(如果您手動修改packages.config,這也可以用於安裝)。
它具有以下限制:
- 它希望你保持你的包在nuget_packages文件夾(類似於node_modules)。
- 您需要在該文件夾中有一個packages.config文件。
- 的內容文件夾中,只有內容被複制,沒有安裝的運行等
- 如果你有相同的名稱,內容文件/文件夾的現有文件/文件夾,它將被覆蓋。
代碼:
Set-StrictMode -Version 2
$ErrorActionPreference = 'Stop'
$packagesDirectory = (Get-Item nuget_packages)
$packagesDirectory.GetDirectories() | % {
Write-Host "Deleting $_"
Remove-Item $_.FullName -Recurse
}
Write-Host "Starting nuget.exe"
Start-Process nuget -ArgumentList "install packages.config" -WorkingDirectory nuget_packages -NoNewWindow -Wait
$packagesDirectory.GetDirectories() | % {
$contentPath = Join-Path (Join-Path $packagesDirectory.Name $_) 'content'
if (!(Test-Path $contentPath)) {
return;
}
Get-ChildItem $contentPath -Exclude *.transform | % {
$target = $_.Name
if (Test-Path $target) {
Write-Host "Deleting $target"
Remove-Item $target -Recurse
}
Write-Host "Copying $(Join-Path $contentPath $_.Name) to $target"
Copy-Item $_.FullName -Destination $target -Recurse
}
}