我很好奇是否可以在只有dnu build
和project.json
个文件的C#项目上运行global.json
,并且缺少所有的MSBuild设置.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
时,我应该运行某种hackish吗?如果没有对回购中所有子项目的明确了解,有没有办法做到这一点?
例如,如果这是我的构建脚本:
#!/usr/bin/env bash
dnu build src/LibFoo/project.json
dnu build test/LibFoo.Tests/project.json
然后我在src/
目录下又添加了10个项目,如果不在构建脚本中再添加10行就可以实现这项工作?
任何帮助将不胜感激,谢谢!
答案 0 :(得分:3)
就像@aguafrommars所说,你可以使用KoreBuild,但我们不会提供任何支持,也不保证我们不会做出突破性改变。这只是一个恰好公开的基础设施项目。
但是,KoreBuild所做的是查找包含指定文件夹下的project.json的文件夹,并在其上调用dnu
(或dotnet
)build
。没什么好看的,只是一个for循环。它可以在批处理,PowerShell或Bash中轻松复制。 https://github.com/aspnet/KoreBuild/blob/dev/build/shade/_k-standard-goals.shade#L144-L145
答案 1 :(得分:1)