如何在缺少解决方案文件的 DNX 项目上 运行 `dnu build`?

How to run `dnu build` on DNX projects that lack a solution file?

我很好奇是否可以在只有 project.jsonglobal.json 文件并且缺少所有 MSBuild 设置的 C# 项目上 运行 dnu build .sln.xproj。这是我的目录结构:

LibFoo/
-global.json
-src/
--LibFoo/
---project.json
---QuuxBar.cs
-test/
--LibFoo.Tests
---project.json
---QuuxBarTests.cs

当我 cd 到 repo root 和 运行 dnu build global.json 时,这是我得到的输出:

$ dnu build global.json
Microsoft .NET Development Utility Mono-x64-1.0.0-rc1-16231

Unable to locate project.json.
Total build time elapsed: 00:00:00.0017763
Total projects built: 1

我该怎么办?我是否应该 运行 某种骇人听闻的东西,在目录中找到所有 project.json 文件,并在它们上面找到 运行 dnu build?有没有办法在不明确了解回购协议中所有子项目的情况下做到这一点?

例如,如果这是我的构建脚本:

#!/usr/bin/env bash

dnu build src/LibFoo/project.json
dnu build test/LibFoo.Tests/project.json

然后我在 src/ 目录下又添加了 10 个项目,有什么方法可以在不向构建脚本添加 10 行的情况下完成这项工作?

任何帮助将不胜感激,谢谢!

aspnet 团队使用 KoreBuild which are Sake 脚本来构建和测试 AspNet Core 堆栈。
您可以使用相同的工具。

正如@aguafrommars 所说,您可以使用 KoreBuild,但我们不为此提供任何支持,也不保证我们不会做出重大更改。这只是一个基础设施项目,恰好是 public.

但是,KoreBuild 所做的是在指定文件夹下查找包含 project.json 的文件夹,并对其调用 dnu(或 dotnetbuild .没什么特别的,只是一个 for 循环。它可以很容易地批量复制,PowerShell 或 Bash。 https://github.com/aspnet/KoreBuild/blob/dev/build/shade/_k-standard-goals.shade#L144-L145