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

时间:2016-03-20 15:35:00

标签: c# asp.net .net asp.net-core dnx

我很好奇是否可以在只有dnu buildproject.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行就可以实现这项工作?

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

2 个答案:

答案 0 :(得分:3)

就像@aguafrommars所说,你可以使用KoreBuild,但我们不会提供任何支持,也不保证我们不会做出突破性改变。这只是一个恰好公开的基础设施项目。

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

答案 1 :(得分:1)

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