【问题标题】:Build all csproj files, except Test projects构建所有 csproj 文件,除了测试项目
【发布时间】:2019-06-15 22:13:15
【问题描述】:

在 DevOps 中,您可以创建一个 dotnet build 任务,其中“项目路径”可以设置为 **/*.csproj 以构建所有项目。

这很好用,但它(显然)也构建了我的 *.Test.csproj 项目。

我发现一些帖子提到了排除模式,所以我尝试了与那些帖子中相同的操作并尝试了以下组合:

**/*.csproj;-**/*.Test.csproj
**/*.csproj;!**/*.Test.csproj

**/*.csproj;-:**/*.Test.csproj
**/*.csproj;!:**/*.Test.csproj

对于所有尝试,我在 DevOps 日志中收到以下错误:

未找到与指定模式匹配的项目文件。

那么,我如何创建一个dotnet build 任务来构建我的所有项目除了*.Test.csproj 项目?

【问题讨论】:

    标签: .net-core azure-devops azure-pipelines azure-pipelines-build-task


    【解决方案1】:

    这是我用来运行所有测试的工具,但其中一些除外:

      Test/**/*.csproj
      !**/*.Billing.Test.csproj
      !**/*.Queues.Test.csproj
      !**/*.WidgetDataProvider.Test.csproj
    

    所以你需要使用同样的令牌:

      **/*.csproj
      !**/*.Test.csproj
    

    据我了解,订单很重要,所以这不起作用:

      !**/*.Test.csproj
      **/*.csproj
    

    【讨论】:

    • 将它们放在多行是解决方案。 dotnet build 不适合将它们放在同一行,用分号分隔,尽管它似乎适用于dotnet pack。谢谢。
    • 据我所知,以; 为分隔符的单行是旧式语法,现在已弃用
    • dotnet pack 只有一行来输入项目路径,而dotnet build 有多行,所以我认为我们暂时只能使用;
    猜你喜欢
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 2013-08-07
    相关资源
    最近更新 更多