我可以使用 dotnet build 构建多个项目吗?

Can I build multiple projects with dotnet build?

我可以用一个 project.json 根文件(或其他方式)以某种方式构建多个项目吗?比如一个库,一个测试项目,一个命令行?如果可以,怎么做?

如果您的所有项目都存储在这样的结构中:

<root>/src/Project1
<root>/src/Project2

然后您可以使用带有通配模式的单个命令一次构建所有项目:

dotnet build src/**/project.json

据我所知,每个项目仍然需要单独的 project.json 文件。

我的回答可能晚了一年,但对于在此之后登陆这里的人来说可能仍然有用。

dotnet 构建不再使用 project.json,而是使用 *.csproj。 dotnet build 现在可以将目录名称作为参数,并使用该目录中的 *.csproj 进行构建。在这种情况下,从顶级目录构建的最简单方法如下:

假设您的项目结构是:

src
  |
  + -- proj1
  |
  + -- proj2
  |
  + -- proj3
  |
  .
  .

只需转到顶级目录(在本例中为src),然后输入:

Get-ChildItem -exclude ".vscode" | %{Write-Host -ForegroundColor DarkMagenta "Building $_..."; dotnet build $_;}

我通常在 VSCode 中使用 PowerShell,因此您会看到 -exclude ".vscode" 和 PowerShell 命令 Get-ChildItem(也简称为“dir”)和 Write-Host.

希望对您有所帮助。

转到解决方案的根目录并运行以下 PowerShell(仅适用于 .NET Core 项目)

$baseDir = (Get-Item -Path ".\" -Verbose).FullName
Write-Host ("Scanning *.sln files in " + $baseDir)
$solutionPaths = Get-ChildItem -Path $baseDir -Include *.sln -Recurse
Write-Host ("Total found: " + $solutionPaths.Count)
foreach ($solutionPath in $solutionPaths) {  
    Write-Host ("Building => " + $solutionPath)
    dotnet build $solutionPath
}