如何通过通配符模式构建 dotnet

How to dotnet build by wildcard pattern

我有 .sln 文件,其中包含不同文件夹中的一些项目,最初在根文件夹中我有 srcTests 文件夹和 sln文件。结构如下图所示:

当我 运行 dotnet build 它构建所有项目。另一种方法是传递 <PROJECT | SOLUTION> 文件以构建更具体的内容。我只需要根据通配符构建特定项目或从构建中排除一些项目。

当我尝试传递 **/src/*.csproj!Tests/** 时,它不会过滤项目,但会给出来自 MSBuild 的错误:

Microsoft (R) Build Engine version 16.7.0+b89cb5fde for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

MSBUILD : error MSB1009: Project file does not exist.
Switch: **/src/*.csproj

有没有办法根据通配符模式构建项目?

我找不到任何允许使用 dotnet build 通过某种模式准确构建项目的参数。根据 reference.

可以为 dotnet test 这样做

为了为 dotnet build 做类似的事情,我可以用 powershell 实现我想要的:

dir "*.csproj" -Recurse | %{dotnet build  $PSItem.FullName}