MSBuild - MSBuild
| Entwickler | Microsoft |
|---|---|
| Erstveröffentlichung | 2003 |
| Stabile Version | v16.11.0 / 11. August 2021
|
| Repository | |
| Geschrieben in | C# |
| Betriebssystem | Plattformübergreifend |
| Plattform | .NET Framework , .NET Core |
| Typ | Build-Tool |
| Lizenz | MIT-Lizenz |
| Webseite |
docs |
Microsoft Build Engine , besser bekannt als MSBuild , ist ein kostenloses Open-Source- Build-Toolset für verwalteten Code sowie nativen C++- Code und war Teil von .NET Framework . Visual Studio hängt von MSBuild ab, aber nicht umgekehrt. Visual Studio Application Lifecycle Management hängt von MSBuild ab, um Teambuilds über Azure DevOps Server durchzuführen .
Überblick
MSBuild ist ein Build-Tool , das hilft, den Prozess der Erstellung eines Softwareprodukts zu automatisieren, einschließlich des Kompilierens des Quellcodes , des Verpackens , Testens, Bereitstellens und Erstellens von Dokumentationen. Mit MSBuild ist es möglich, Visual Studio-Projekte und -Projektmappen zu erstellen, ohne dass die Visual Studio- IDE installiert ist. MSBuild ist kostenlos und quelloffen . MSBuild wurde zuvor mit .NET Framework gebündelt ; ab Visual Studio 2013 wird es jedoch stattdessen mit Visual Studio gebündelt. MSBuild ist ein funktionaler Ersatz für das Dienstprogramm nmake , das in Projekten verwendet wird, die aus älteren Visual Studio-Versionen stammen.
MSBuild arbeitet mit MSBuild-Projektdateien, die eine ähnliche XML- Syntax wie Apache Ant oder NAnt aufweisen . Obwohl die Syntax auf einem wohldefinierten XML-Schema basiert, ist die grundlegende Struktur und Funktionsweise mit dem traditionellen Unix- Dienstprogramm make vergleichbar : Der Benutzer gibt an, was verwendet wird (normalerweise Quellcodedateien) und was das Ergebnis sein soll (normalerweise eine statische Bibliothek, DLL oder eine ausführbare Anwendung), aber das Dienstprogramm entscheidet selbst, was zu tun ist und in welcher Reihenfolge der Build ausgeführt wird.
MSBuild kann ein Projekt mit einer unterstützten .NET Framework-Version Ihrer Wahl erstellen. Diese Funktion wird als "Multi-Targeting" bezeichnet. Jeder gegebene Build eines Projekts kann jedoch jeweils nur auf eine Version des Frameworks abzielen.
Geschichte
MSBuild wurde erstmals 2003 für .NET Framework 2.0 zur Verwendung in Visual Studio 2005 (Codename Whidbey) und Windows Vista (Codename Longhorn) entwickelt.
Versionen
| Ausführung | .NET-Framework | Visual Studio-Version | Übliche Installationsorte (x86) |
|---|---|---|---|
| 2.0 | 2.0 | 2005 | C:\Windows\Microsoft.NET\Framework\v2.0.50727 |
| 3.5 | 3.5 | 2008 | C:\Windows\Microsoft.NET\Framework\v3.5 |
| 4.7.3062.0 | 4.0 | 2010 | C:\Windows\Microsoft.NET\Framework\v4.0.30319 |
| 4.8.3761.0 | 4.5.2 | 2012 | C:\Windows\Microsoft.NET\Framework\v4.0.30319 |
| 12.0 | 4.5.2 | 2013 | C:\Programme (x86)\MSBuild\12.0\Bin |
| 14,0 | 4.6 | 2015 | C:\Programme (x86)\MSBuild\14.0\Bin |
| 15.0 | 4.7 | 2017 |
|
| 16.0 | 4.7.2 | 2019 |
|
Terminologie
- Ziel
- Ein Ziel enthält eine Reihe von Aufgaben, die von MSBuild ausgeführt werden sollen. Der Fokus von MSBuild ist das Ergebnis Target, das beim Aufrufen von MSBuild mit der Projektdatei angegeben wird. Dies liegt daran, dass ein Projekt mehrere Zieleinträge enthalten kann , die jeweils nacheinander (und bedingt) ausgeführt werden. Nachfolgende abhängige Ziele werden vor dem angeforderten Ziel ausgeführt. Der Ausführungsfluss des aktuellen Targets kann mithilfe der folgenden Attribute gesteuert werden: Condition, BeforeTargets, AfterTargets und DependsOnTargets. Jedes Ziel kann mit den notwendigen Aufgaben in sich abgeschlossen sein, um sich selbst abzuschließen. Ein Ziel ist normalerweise eine Aktion, die für eine Datei, eine Dateigruppe oder ein Verzeichnis ausgeführt wird.
- Aufgabe
- Ein Task ist ein Befehl, der ausgeführt wird, um ein Ziel abzuschließen. Aufgaben werden verwendet, um eine beliebige Anzahl von Aktionen während des Buildprozesses zu gruppieren und auszuführen. Sie werden typischerweise in einer .NET-Assembly als Klasse implementiert, die von der Task-Klasse erbt oder die ITask-Schnittstelle implementiert. Viele grundlegende Aufgaben werden als Teil von .NET Framework ausgeliefert, und von der Community entwickelte Aufgaben sind frei verfügbar. Einige Beispiele für Aufgaben umfassen das Kopieren von Dateien, das Erstellen von Verzeichnissen oder das Parsen von XML.
- Eigenschaften und Gegenstände
- MSBuild stellt Properties und Items bereit , die konzeptionell den Makros von make entsprechen . Eigenschaften geben statische Werte an, während Elemente normalerweise verwendet werden, um Gruppen von Dateien oder Ordnern zu definieren, für die Aufgaben ausgeführt werden. Das Angeben von Dateien für Artikel wird durch die Unterstützung von Platzhaltern vereinfacht.
Siehe auch
Verweise
Weiterlesen
- Kretzler, Brian (2011). MSBuild Trickery: 99 Wege , wie der Build - Engine zu Ihrem Willen zu beugen . K Cross Seven Ranch Company. P. 426. ISBN 978-0-615-50907-5.
- Hashimi, Sayed Ibrahim (Juni 2006). "Innerhalb von MSBuild: Kompilieren von Apps mit benutzerdefinierten Aufgaben für die Microsoft Build Engine" . MSDN-Magazin . Microsoft. Archiviert vom Original am 11. April 2015 . Abgerufen am 11. April 2013 .
- Hashimi, Sayed Ibrahim (März 2007). "WiX-Tricks: Automatisieren Sie Releases mit MSBuild und Windows Installer XML" . MSDN-Magazin . Microsoft . Abgerufen am 11. April 2013 .
- Hashimi, Sayed Ibrahim (Februar 2009). "MSBuild: Best Practices zum Erstellen zuverlässiger Builds, Teil 1" . MSDN-Magazin . Microsoft . Abgerufen am 11. April 2013 .
- Hashimi, Sayed Ibrahim (März 2009). "MSBuild: Best Practices zum Erstellen zuverlässiger Builds, Teil 2" . MSDN-Magazin . Microsoft . Abgerufen am 11. April 2013 .
- Reif, Andreas (10. Juni 2010). "Einführung in Microsofts Build-Management-Technik MSBuild" . heise Entwickler . Heinz Heise . Abgerufen am 11. April 2013 .
- Jones, Mike; Warren, Genevieve; Blome, Mike; Robertson, Colin; Hogenson, Gordon; Cai, Saisang (4. November 2016). "MSBuild-Zielframework und Zielplattform" . MSBuild. Microsoft-Dokumente . Abgerufen 2018-02-19 .