2009-05-31 7 views
5

Wir pflegen eine mittelgroße Windows-Anwendung in vb/C# .net in Arbeit entwickelt. Noch immer ist der Build- und Bereitstellungsprozess für diese App manuell. Ich bin entschlossen, diesen Prozess mit MSBuild zu automatisieren, auf dem ich noch keine Kenntnisse habe.Benötigen Sie Primer für einen Msbuild Neuling

Unsere App hat eine einfache Build-Struktur, eine Reihe von Projekten, die bereits in vier Lösungen (. Sln) gruppiert sind und nur die vier Slns in einer Reihenfolge erstellen müssen. Und dann veröffentlichen Sie ein Projekt (das Teil der letzten zu erstellenden Datei ist) in ein Verzeichnis. Das ist es. Ein einfacher Prozess, der bereits 30 Minuten manuelle Aufbauzeit in Anspruch nimmt und ich bin mir ziemlich sicher, dass dies ohne manuelle Interferenz mit msbuild in mindestens 1/4 der Zeit erreicht werden kann.

Alle meine Ziele gut eingestellt, begann ich um Web für MSBuild Ressourcen zu suchen, um meinen Prozess zu erreichen, aber möglicherweise viele Dinge verwirrt mich verwirrt. Brauchen Sie einen Zeiger oder eine gute Erklärung, wie Sie anfangen und wo ich anfangen soll für mein einfaches Szenario. Hilfe wird sehr geschätzt.

Antwort

5

Das klingt wie ein sehr einfaches Skript zu schreiben. Auch würde eine Batch-Datei tun:

msbuild \path\to\first.sln /p:Configuration=Release 
msbuild \path\to\second.sln /p:Configuration=Release 
msbuild \path\to\third.sln /p:Configuration=Release 
msbuild \path\to\fourth.sln /p:Configuration=Release 
call deploy

Natürlich wäre viel besser, einen Server laufen zu haben, sagen CruiseControl.NET, die eine Web-Schnittstelle in den Build-Status und Geschichte gibt.

In MS Build gibt es zwei Hauptkontrollpunkte für den Aufrufer: Das Ziel und seine Eigenschaften. Das Ziel besteht darin, was zu kompilieren, Ressourcen, Kompilierung, Bereitstellung usw. Die Eigenschaften steuern, wie das Ziel erstellt wird.

Sie können die Konfiguration mithilfe der Konfiguration (siehe oben) steuern. Wenn Sie Ihre *. * Proj-Dateien öffnen, werden Sie feststellen, PropertyGroup Elemente. Diese sind über die Kommandozeile über den Parameter /p arg einstellbar.

Hier sind die Angaben für die beiden argumente:

/target:<targets> Build these targets in this project. Use a semicolon or a 
       comma to separate multiple targets, or specify each 
       target separately. (Short form: /t) 
       Example: 
        /target:Resources;Compile 

/property:<n>=<v> Set or override these project-level properties. <n> is 
       the property name, and <v> is the property value. Use a 
       semicolon or a comma to separate multiple properties, or 
       specify each property separately. (Short form: /p) 
       Example: 
        /property:WarningLevel=2;OutDir=bin\Debug\ 
+0

Vielen Dank für Ihre Antwort. Aber wie konfiguriere ich Konfigurationsoptionen und alles? Zum Beispiel debugere ich meine App, die Projects im DEbug-Modus einstellt, aber das Skript sollte immer im Release-Modus erstellt werden. Nochmals vielen Dank für Ihre schnelle Antwort. – blntechie

+0

Ich habe Details hinzugefügt. Es ist alles ganz einfach und es lohnt sich, es zu meistern. MS Build kann ** viel ** automatisieren. –

1

Here's a good guide, die eine Menge von Informationen über große MSBuild, Continuous Integration und CuriseControl.NET hat. Definitiv ein guter Anfang.