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

时间:2016-10-08 15:58:13

标签: .net-core

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

3 个答案:

答案 0 :(得分:2)

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

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

然后你可以使用带有globbing模式的单个命令来一次构建所有项目:

dotnet build src/**/project.json

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

答案 1 :(得分:2)

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

dotnet构建不再使用project.json,而是使用* .csproj。现在,dotnet构建可以使用目录名称作为参数,并使用该目录中的* .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

希望这会有所帮助。

答案 2 :(得分:0)

转到解决方案的根目录并运行以下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
}