【问题标题】:How to run `dnu build` on DNX projects that lack a solution file?如何在缺少解决方案文件的 DNX 项目上运行“dnu build”?
【发布时间】:2016-03-20 15:35:00
【问题描述】:

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

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

当我 cd 到 repo 根并运行 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?在不明确了解 repo 中的所有子项目的情况下,有什么方法可以做到这一点?

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

#!/usr/bin/env bash

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

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

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

【问题讨论】:

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


    【解决方案1】:

    就像@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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-05
        • 2010-12-21
        • 1970-01-01
        • 2023-04-06
        • 2014-06-19
        • 1970-01-01
        相关资源
        最近更新 更多