Automatisieren der Erstellung einer Lösung der Verwendung von MsBuild-API 4.0?
Ich habe eine Reihe von Lösungen aus dem Internet heruntergeladen (codeplex etc.) und ich will, Sie zu bauen und ein tool ausführen, über die DLLs. Ich möchte das per automation.
Es wurde vorgeschlagen, um zu verwenden MSBuild-API, da es wird machen es einfach, Informationen zu dem Fehler und zu manipulieren MsBuild weiter zu erhalten andere Infos. Es ist leider kaum dokumentiert, so:
- Wie Baue ich ein .sln-Datei (via MSBuild-API 4.0) ?
- Wie kann ich erfassen der Informationen? (Ich sah ein Beispiel, wie die Ausgabe der log auf der Konsole, aber nicht gefunden haben smth für Dateien)
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich eine Verwandte Frage auf stackoverflow bietet die Lösung:
läuft msbuild-programmgesteuert
Akzeptierte Antwort bietet gute Ressourcen:
http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/ec95c513-f972-45ad-b108-5fcfd27f39bc/
Logging-Nachrichten Bauen mit MSBuild 4.0:
http://www.go4answers.com/Example/building-solution-programatically-vs-5395.aspx
Auch, es ist ein Beispiel der log-Nutzung auf msdn: http://msdn.microsoft.com/en-us/library/microsoft.build.framework.ilogger.aspx
Vielleicht bin ich etwas fehlt, aber warum muss es sein, die MSBuild API für eine einfache Aufgabe wie das?
Nur aus dem, was du geschrieben hast in der Frage, sehe ich keine Notwendigkeit zu verwenden die API nur, um eine Lösung zu erstellen und erfassen Sie die Ausgabe in eine text-Datei.
Sie können die Verwendung der MSBuild-Befehlszeile Werkzeug für diese.
Gebäude eine Lösung mit MSBuild ist so einfach:
Zu erfassen Sie die Ausgabe in eine text-Datei, brauchen Sie nur Folgendes hinzufügen:
(Beispiel kopiert aus dem link)
So, die Letzte Anweisung sieht wie folgt aus:
Dadurch wird die Projektmappe erstellen und speichern Sie die Ausgabe von MSBuild in einer text-Datei mit dem Namen
MyLog.log
im aktuellen Verzeichnis.Nichts, was Sie beschrieben haben, erfordert die Verwendung von MSBuild-API. Mit der MS Build-API ist sinnvoll, wenn Sie möchten, erweitern den build-Prozess für die benutzerdefinierte build-Aufgaben, aber es ist nicht nützlich, wenn Sie wollen einfach automatisieren von builds. Die API ist sehr gut dokumentiert. Hier ist eine wie in der MSDN-Dokumentation. MSBuild-API
Beantworten Ihre Fragen direkt:
1) MSBuild nicht verstehen solution-Dateien. Diese sind eine visual-studio-Konzept. MSBuild wird 'run' - eine Lösung, die Datei, wenn Sie von der Befehlszeile, aber es bedeutet, dass durch die Erzeugung einer msbuild-Datei aus der Datei der Lösung. Sie würde den gleichen Effekt, indem Sie mit dem toplevel-Projekt-Dateien direkt.
2) Wie bereits erwähnt, mein Christian, das kannst du mit einem logger. Hier ist die Dokumentation: Bauen Logger
Wenn Sie wollen, automatisieren von builds, die Verwendung einer etablierten build-Automatisierungs-Umgebungen wie Jenkins oder TeamCity.