c# - 如何使用 Cake 安装 Bower 软件包 (http ://cakebuild.net)

标签 c# powershell build bower cakebuild

我正在将 Powershell 构建脚本迁移到 Cake 脚本,之前我会在找到 Bower.json 文件的目录集合上运行以下命令:

foreach ($directory in (Get-CommonPath $bowerDirs)) {
    Push-Location $directory
    &bower install
    Pop-Location
}

但是由于 Bower 似乎没有蛋糕别名,我正在努力弄清楚应该如何使用 Cake 来执行此操作(&bower install)。

更新 根据@garyewanpark的回答,我尝试了以下操作

Task("BowerInstall")
  .Does(() => {
    var bowerRoots = GetBowerRoots();
    foreach (var bowerRoot in bowerRoots.Select(x => x.FullPath))
    {
      try 
      {
        var exitCodeWithArgument = StartProcess("bower", new ProcessSettings {
          Arguments = "install",
          WorkingDirectory = bowerRoot
        });
        Information("Exit code: {0}", exitCodeWithArgument);
      }
      catch (Exception ex)
      {
        Information($"Failed on {bowerRoot}, {ex.Message}");
      }
    }
  });

但这为尝试的每个路径提供了以下错误消息

Failed on C:/Projects/dev/WebUI, The system cannot find the file specified

如果使用命令提示符在目录中运行 Bower install,则它会成功运行

下面描述了正在运行的目录结构。 单个 git 分支中有多种解决方案。每个解决方案可以包含多个项目,有些项目有一个 Bower.json 文件。 GetBowerRoots() 方法返回包含 Bower.json 文件的目录的 DirectoryPathCollection。

c:\
  - Projects
    - Branch
      - build.ps1
      - build.cake
      - Sol1
        - Proj1
          - Misc proj files
          - bower.json
      - Sol2
        - Proj2
          - Misc proj files
          - bower.json

最佳答案

Cake.Bower Addin 现已创建,可以从此处下载:

https://www.nuget.org/packages/Cake.Bower/

关于c# - 如何使用 Cake 安装 Bower 软件包 (http ://cakebuild.net),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45678163/

相关文章:

python - 如何在 Python 中创建 IntPtr?

java - gradle 和 junit 间歇性并发故障

Latex,TikZ和章节和图形的单独汇编

c# - 如何使多个 .net 项目在构建中仅复制引用一次

powershell - 从PowerShell中的New-WebServiceProxy捕获错误

c# - 是否可以在这段代码中避免使用多个 IF?

c# - ACR 122u NFC 读写器无法通过 USB 连接 : return error

c# - 连接调试器时,带有 Task.Run 的代码会更改输出

c# - 使用linq c#计算CSV文件中一列的平均值

powershell - 扩展PSObject的内容