2016-03-20 4 views
0

Ich bin gespannt, ob es möglich ist, dnu build auf C# -Projekte, die nur project.json und global.json Dateien haben, zu laufen, und fehlen alle MSBuild-Setup wie .sln und .xproj. Hier ist, was meine Verzeichnisstruktur wie folgt aussieht:Wie führe ich `DNU Build` auf DNX-Projekten aus, denen eine Lösungsdatei fehlt?

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

Als ich cd an den Repo-Wurzel und dnu build global.json laufen, hier ist die Ausgabe erhalte ich:

$ 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 

Was soll ich tun? Sollte ich irgendeine Art von hackish Sache laufen lassen, wo ich alle project.json Akten innerhalb des Verzeichnisses finde und dnu build auf ihnen laufen lasse? Gibt es eine Möglichkeit, dies ohne explizite Kenntnis aller Teilprojekte innerhalb des Repos zu tun?

Zum Beispiel, wenn dies meine Build-Skript war: diese Arbeit zu machen, ohne das Hinzufügen 10 weitere Linien zu der Build

#!/usr/bin/env bash 

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

und dann hat ich 10 weitere Projekte im Rahmen des src/ Verzeichnis, was für eine Art und Weise sein würde, Skript?

Jede Hilfe wäre willkommen, danke!

Antwort

3

Wie @aguafrommars sagte, Sie können KoreBuild verwenden, aber wir bieten keine Unterstützung dafür noch wir garantieren, dass wir keine brechende Änderung vornehmen werden. Es ist nur ein Infrastrukturprojekt, das öffentlich ist.

Aber was KoreBuild tut, ist es für die Ordner sieht, die einen project.json unter einem bestimmten Ordner enthalten und ruft dnu (oder dotnet) build auf ihnen. Nichts Besonderes, nur eine For-Schleife. Es könnte leicht in Batch, PowerShell oder Bash repliziert werden. https://github.com/aspnet/KoreBuild/blob/dev/build/shade/_k-standard-goals.shade#L144-L145

1

Das aspnet Team verwenden KoreBuild, die Sake Skripts zum Erstellen und Testen der AspNet Core Stapel sind.
Sie können die gleichen Tools verwenden.