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
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
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.
MSBuild
in der Tat verwendet csc.exe
, so dass Sie sowohl in der Befehlszeile verwenden können. MSBuild
ist ein bisschen einfacher zu bedienen.
- 1. MSBuild inkonsistente Compiler-Flags
- 2. VS 2013 und MSBuild
- 3. ausgeführt Msbuild ohne VS installiert
- 4. CLR Sprachoptimierung. Language Compiler VS JIT Compiler
- 5. vs 2008 623 Compiler Fehler
- 6. C89 vs c99 GCC-Compiler
- 7. TFSBuild/MSBuild und Projektverweis vs Dateireferenz
- 8. Ich muss den Compiler auf VS ändern
- 9. Machen VS-Compiler signierte/unsigned Zuweisungen?
- 10. PHP - Just-in-Time-Compiler Vs Interpreter
- 11. (Compiler) else if (true) vs anderes Szenario
- 12. clang-3.8 und compiler-rt vs libgcc
- 13. Wie kann ich für Compiler-Direktiven mit einer MSBuild-Bedingung in einer CSPROJ-Datei testen?
- 14. Wie Ausgaben von Msbuild in das VS-Ausgabefenster ausgegeben werden?
- 15. MSBuild: TlbImp Fehler seit dem Upgrade auf VS 2010
- 16. Warum zweimal mein Projekt Gebäude in VS 2015 ist MSBuild
- 17. Msbuild funktioniert über VS und Kommandozeile, scheitert aber über Jenkins
- 18. Entwicklungserfahrung mit MSBuild/Nant vs Visual Studio 2005/2008
- 19. MSBuild WCF Optionen
- 20. --strictNullCheck mit Msbuild
- 21. Visual Studio 2012: Compiler-Setup (möglich, Compiler von SDK verwenden zB VC++ 2008-Compiler VC++ 2010-Compiler)
- 22. MSBuild TypeScript Kompilierziele
- 23. MsBuild nicht finden Veröffentlichungsprofil
- 24. MSBUILD-Makrodokumentation?
- 25. msbuild verwandeln
- 26. MSBuild Überschreibungsabhängigkeiten
- 27. MSBuild 4 und MSDeploy Befehlszeile
- 28. Legen Sie die richtigen Pfade für VS Command Line Compiler
- 29. Seltsames Compiler-Verhalten mit Float-Literalen vs Float-Variablen
- 30. Visual Studio 2015 Compiler auf VS 2010 Version
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. –
Scheint, als ob das Lesen einer MSBuild-Protokolldatei dasselbe Verständnisniveau entwickeln könnte. –