MSBuild - Erstellen einer .NET-Lösungsdatei (in einem XML-Taskskript) aus vordefinierten Befehlszeilenbefehlen
Ich studiere seit MSBuild, wie ich das automatisieren müssen, die meine Entwicklung shop baut. Ich war in der Lage, einfach schreiben .BAT-Datei aufruft, die die VS-Eingabeaufforderung und geht meine MSBuild-Befehlen. Dies funktioniert Recht gut und ist irgendwie raffiniert.
Hier ist der Inhalt meiner .BAT-build-file:
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat"
cd C:\Sandbox\Solution
msbuild MyTopSecretApplication.sln /p:OutputPath=c:\TESTMSBUILDOUTPUT /p:Configuration=Release,Platform=x86
pause
^ Das funktioniert gut, aber ich habe nun die Notwendigkeit der Verwendung von MSBuild-Aufgabe für TeamCity CI. Ich habe versucht, schreiben Sie ein paar MSBuild-Skripts, aber ich kann nicht erhalten Sie die gleiche Arbeit. Was ist das äquivalent build-Skript der Befehl, den ich bin mit meiner .BAT-Datei? Irgendwelche Ideen?
Habe ich versucht, mit etwas wie dieses, aber ohne Erfolg (ich weiß, das ist falsch):
<?xml version="1.0"?>
<project name="Hello Build World" default="run" basedir=".">
<target name="build">
<mkdir dir="mybin" />
<echo>Made mybin directory!</echo>
<csc target="exe" output="c:\TESTMSBUILDOUTPUT">
<sources>
<include name="MyTopSecretApplication.sln"/>
</sources>
</csc>
<echo>MyTopSecretApplication.exe was built!</echo>
</target>
<target name="clean">
<delete dir="mybin" failonerror="false"/>
</target>
<target name="run" depends="build">
<exec program="mybin\MyTopSecretApplication.exe"/>
</target>
Was ich einfach brauche ist ein MSBuild-XML build-Skript erstellt eine einzelne Lösung für den Release-Modus auf einer angegebenen Ausgabe-Verzeichnis. Keine Hilfe?
InformationsquelleAutor der Frage D3vtr0n | 2011-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwendung der MSBuild-Aufgabe um die Lösung zu erstellen Weitergabe der Eigenschaften, die Sie benötigen.
InformationsquelleAutor der Antwort Brian Walker
Hier ist meine Letzte MSBuild-Skript:
Wie Sie sehen können, ist der größte Unterschied von Brian Walker ' s Antwort ist die "Konfiguration" einstellen. Hier ist es "MSBuildRelease" anstatt "Release", die ich angepasst aus der .NET-IDE. Befolgen Sie die Schritte Brian vorgeschlagen (mit der rechten Maustaste auf den solution-Knoten und wählen Sie Configuration Manager fügen Sie in Visual Studio den "NEUEN" Konfiguration und entfernen/deaktivieren Sie Projekte, die Sie wollen, ausgeschlossen.)
Habe ich da hochgeladen, dies zu meinem TEAMCITY-server und automatisiert haben meine .NET-build-Prozess mit Ihrer Hilfe. Vielen Dank an Brian Walker (fellow Texaner)...werde ich Sie kaufen ein Bier!! PROST!!
InformationsquelleAutor der Antwort D3vtr0n
Ich weiß, das ist nicht eine direkte Antwort auf deine Frage, aber warum nicht einfach mit dem eingebauten Visual-Studio-build-runner und Holen sich das Gesamtergebnis aus der entsprechenden /obj Pfad und speichern Sie es als ein build-Artefakt? Wenn Sie effektiv nicht tun nichts über eine einfache kompilieren gegen einen bestimmten build-Konfiguration dann gibt es nicht viel Mehrwert, indem Sie mit einem dedizierten build-Datei und mit build-Artefakte machen das Leben viel einfacher (Verwendung in anderen builds, die Sie bequem herunterladen, etc).
Versuchen Sie die hier beschriebene Konfiguration ist dies nicht Sinn machen: http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity_25.html
InformationsquelleAutor der Antwort Troy Hunt