gpt4 book ai didi

command-line - 使用 NuGet.exe 安装/更新没有项目文件的纯内容包

转载 作者:行者123 更新时间:2023-12-02 03:32:59 25 4
gpt4 key购买 nike

我们有一个本地 NuGet 提要,其中包含一些仅包含 JS 内容的包。
我想将这些包安装在一个普通的 JS 应用程序中(我在 Brackets 中编辑并且根本不使用 VS)。显然像 Bower 这样的东西会更合适,但我不想维护两个包馈送系统。

如果我执行 nuget install MyPackage,它会下载并解压缩包,但不会将内容文件复制到子文件夹(实际上它会下载当前文件夹中的包)。

我可以使用 nuget.exe 实际复制内容吗,还是必须是外部步骤?

最佳答案

好的,这是我为命令行更新所做的一些初步工作(如果您手动修改 packages.config,这也适用于安装)。

它有以下限制:

  1. 它希望您将包保存在 nuget_packages 文件夹中(类似于 node_modules)。
  2. 您需要在该文件夹中有一个 packages.config 文件。
  3. 仅复制 content 文件夹的内容,不运行任何安装等。
  4. 如果您有一个与内容文件/文件夹同名的现有文件/文件夹,它被覆盖。

代码:

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
}
}

关于command-line - 使用 NuGet.exe 安装/更新没有项目文件的纯内容包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25537627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com