2014-01-10 5 views
21

Was ist der Unterschied zwischen MSBuild und dem C# -Compiler von einer Eingabeaufforderung? Ich möchte meine Lösungen/Projekte manuell erstellen, ohne Visual Studio zu verwenden, und ich möchte lernen, wie Sie die Befehlszeilentools verwenden.MSBuild vs Compiler

Antwort

25

von C# Compiler tun Sie csc.exe bedeuten? Wenn Sie das meinen, sind csc und MSBuild völlig unterschiedliche Anwendungen.

MSBuild verwendet eine Lösung und Projektdateien, die Dateien in Ihrem Projekt zu erstellen. MSBuild verwendet csc.exe als seinen eigentlichen Compiler, weiß aber, wo Sie Assemblys, Referenzen usw. basierend auf Ihrer Projekt- und Projektdatei finden können (diese Dateien sind eigentlich XML-Dateien).

Wenn Sie csc.exe verwenden, müssen Sie manuell Pfade zu Ihren Dateien, Referenzen usw. angeben, was Ihre Kompilierung erheblich erschwert.

MSDN MSBuild: http://msdn.microsoft.com/en-us/library/dd393574.aspx

MSDN CSC: http://msdn.microsoft.com/en-us/library/78f4aasd.aspx

+0

Wenn Sie ohne die Hilfe von Visual Studio Gebäude sind, würde ich sagen, nicht csc verwendet, ist schwieriger als MSBuild. Wenn Sie es verwenden, müssen Sie auf einer tieferen Ebene verstehen, was Sie dem Compiler vorschreiben. Dies kann das Lösen von Abhängigkeitsproblemen erleichtern. Es macht es auch sehr einfach, alle CS-Dateien automatisch rekursiv in Ihrem Quellcodeverzeichnis zu kompilieren, wodurch die Notwendigkeit entfällt, eine MSBuild-Datei jedes Mal zu bearbeiten, wenn Sie dem Projekt eine weitere Datei hinzufügen möchten. Das würde Sie auch zwingen, keine .cs-Dateien zu haben, die Sie nicht wirklich benutzen, was sowieso eine schlechte Übung ist. –

+0

Scheint, als ob das Lesen einer MSBuild-Protokolldatei dasselbe Verständnisniveau entwickeln könnte. –

0

In C# Code zuerst IL Code kompilieren und dann JIT Compiler Code kompilieren CPU Anweisungen .So alle Compiler Code kompilieren IL sollte. So was msbuild:

Die Microsoft Build Engine (MSBuild) ist die neue Build-Plattform für Microsoft und Visual Studio. MSBuild ist vollständig transparent mit Bezug darauf, wie es verarbeitet und Software baut, Entwickler ermöglicht Produkte in Build-Laborumgebungen orchestrieren und zu bauen, wo Visual Studio

nicht installiert ist

See:

Visual Studio (snn)

Wenn Ihre Lösung klein ist und Sie keine ausgefallenen Dinge tun müssen, können Sie Visual Studio (sln) build runner verwenden. Es macht genau dasselbe wie wenn Sie Project-> Build (aus dem VS-Menü) machen. Diese Option ist sehr einfach zu konfigurieren, ein paar Klicks und Ihr CI-Server kompiliert Ihre Lösung.

MSBuild

Wenn Sie erweiterte Szenarien, abgesehen von der einfachen Zusammenstellung tun, wie verschiedene Konfigurationsdateien anwenden, transformierten Werte in Konfigurationsdatei einfügen, implementieren Binärdateien usw., würden Sie MSBuild Option auswählen. Sie werden wissen, wann Sie dies brauchen, einfach weil der Builder nicht in der Lage ist, Dinge zu tun. Diese Option erfordert Kenntnisse in der Build-Skriptsprache, die aufgabenbasiert und XML-ähnlich ist.

Verwandte Themen