You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Github Actions通配符批量构建多个Visual Studio解决方案

问题原因

MSBuild本身不支持**这类递归通配符语法,你直接将'Samples/**/*.sln'作为参数传入时,MSBuild会将其视为字面路径去查找对应的文件,自然找不到匹配的解决方案,所以抛出MSB1009错误。

实现方案

你的批量构建需求完全可以实现,只需要借助Windows Runner内置的PowerShell能力先遍历找到所有解决方案文件,再逐个传递给MSBuild执行即可,不需要修改核心的矩阵构建逻辑,也能自动适配后续新增的解决方案,满足PR校验的需求。

你只需要把原有Restore和Build步骤的run命令替换为以下内容即可:

- name: Restore nuget packages for all solutions
    run: |
      Get-ChildItem -Path Samples -Recurse -Filter *.sln | ForEach-Object {
        msbuild $_.FullName /p:configuration=${{ matrix.configuration }} /p:platform=${{ matrix.platform }} /t:restore
      }
  
  - name: Build all Sample solutions
    run: |
      Get-ChildItem -Path Samples -Recurse -Filter *.sln | ForEach-Object {
        msbuild $_.FullName /p:configuration=${{ matrix.configuration }} /p:platform=${{ matrix.platform }}
      }

注意事项

  • 请确认actions/checkout执行后,仓库根目录下确实存在Samples目录,若你的仓库目录结构有差异,对应修改Get-ChildItem的Path参数即可
  • 需保证所有存放在Samples目录下的解决方案都已配置Release/Debug两种构建配置、x86/x64两种目标平台,否则会出现单个解决方案构建失败的问题
  • 如果需要加快构建速度,可在msbuild命令后添加/m参数启用并行构建,也可根据需要在循环中添加错误捕获逻辑,实现构建失败后输出具体出错的解决方案名称,方便排查问题

内容的提问来源于stack exchange,提问作者Erik Torres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:15:07