生成除测试项目外的所有csproj文件

时间:2019-06-15 22:13:15

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

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

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

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

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

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

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

  

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

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

1 个答案:

答案 0 :(得分:2)

这是我用来运行除某些测试以外的所有测试的东西:

open Sexplib.Sexp

let rec parse_bindings bindings =
  match bindings with
    | [] -> []
    | first::rest ->
      match first with
        | List([Atom(name); e]) ->
          [(name, parse e)] @ (parse_bindings rest)

let rec parse sexp : expr =
  match sexp with
    | Atom(s) ->
      (* some code *)
    | List(sexps) ->
      match sexps with
        | (* some code *)
        | [Atom("let"); List(bindings_sexp); e2] ->
          let binding_expr = parse_bindings bindings in
            ELet(binding_expr, parse e2)
        | _ -> failwith "foo"

因此,您需要使用相同的标记:

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

据我了解,顺序很重要,所以这行不通:

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