问题描述
我有.sln文件,该文件在不同的文件夹中包含一些项目,最初在根文件夹中,我有 src 和 Tests 文件夹以及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
按照某种模式精确地构建项目。根据{{3}},dotnet test
可以这样做。
为了对dotnet build
做类似的事情,我可以使用powershell实现我想要的:
dir "*.csproj" -Recurse | %{dotnet build $PSItem.FullName}