2008-11-29 11 views
9

Ich versuche, NAnt 0.86b1 läuft mit VS2008 SP1 und x64 XP zu bekommen.NAnt und VS2008 (.NET 3.5) - Lösungsformat der Datei Solution.sln wird nicht unterstützt

Ich habe eine grundlegende Build-Datei (unten), die den Fehler gibt Solution Format der Datei 'Solution.sln' wird nicht unterstützt.

<property name="nant.settings.currentframework" value="net-3.5" /> 

<target name="build" description="Full Rebuild" depends="clean,compile" /> 

<target name="clean" description="Cleans outputs"> 
    <delete dir="bin" failonerror="false" /> 
    <delete dir="obj" failonerror="false" /> 
</target> 

<target name="compile" description="Compiles solution"> 
    <solution configuration="debug" solutionfile="Solution.sln" /> 
</target> 

Hat jemand dieses Problem erfahren? Ich kann nichts Nützliches darüber finden.

Antwort

7

Sie werden feststellen, dass die Dokumentation angibt, dass die <solution>-Aufgabe von NAnt keine neueren Lösungsdateien als VS2003 unterstützt.

Ich empfehle the <msbuild> task from nantcontrib für alle Projekte, die neuer als VS2003 sind.

Außerdem unterstützt die .85-Version von NAnt nur Framework-Versionen bis 2.0. Der reinste Weg, Dinge gegen das 3.5-Framework zu arbeiten, ist die Verwendung der .86-beta1-Versionen von NAnt. Sie können dann die Aufgabe <msbuild> gegen die Lösung von 3.5 verwenden.

7

Nant-0.86-Beta1 unterstützt 3.5 aber nicht im Solution-Node wie schön. Ich landete mit diesem aus dem NAntContrib up:

<target name="build" description="Compiles using the AutomatedDebug Configuration"> 
    <!-- <loadtasks assembly="C:\Dev\nant-0.86-beta1\bin\NAnt.Contrib.Tasks.dll" /> --> 
    <msbuild project="${Solution.Filename}"> 
     <property name="Configuration" value="Release"/> 
    </msbuild> 
    </target> 
+0

+1 für die Verwendung der Msbuild-Aufgaben. Ich habe mit beiden gespielt, seit ich angefangen habe, unsere Builds zu automatisieren, und die msbuild ist einfach schneller zum Laufen. Ich denke auch, dass die Idee, die tatsächliche Lösung/Projektdateien zu verwenden, um den Build auszuführen, nur eine "gute Idee" ist, da dies bedeutet, dass alle Build-Informationen an einem Ort sind. (Anstatt eine Lösung/ein Projekt für VS und eine Nant-Konfiguration zu haben.) –

2

Siehe Building the platform code with nant and VS2008

Dies ist hier bei Überlauf-Stack. Im Grunde haben Sie nur ein paar Optionen, steuern Sie alle Builds selbst mit Projekt-Build-Dateien, allgemeinen Build-Dateien und einer Master-Build-Datei. Oder führen Sie den Exec-Task aus, um die richtige Version von MSBuild für jede Lösung, die Sie kompilieren möchten, auszuführen.