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