2008-11-29 10 views
9

Estoy tratando de ejecutar NAnt 0.86b1 con VS2008 SP1 y x64 XP.NAnt y VS2008 (.NET 3.5) - No se admite el formato de solución del archivo Solution.sln

Tengo un archivo de compilación básico (a continuación) que proporciona el error El formato de solución del archivo 'Solution.sln' no es compatible.

<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> 

Alguien más ha tenido este problema? No puedo encontrar nada útil sobre esto.

Respuesta

7

Notará que los documentos indican que la tarea <solution> de NAnt no admite archivos de solución más nuevos que VS2003.

Recomiendo usar the <msbuild> task from nantcontrib para todos los proyectos más nuevos que VS2003.

Además, la versión .85 de NAnt solo admite versiones de marco hasta 2.0. La forma más pura de hacer que las cosas funcionen contra el marco 3.5 es usar las versiones .86-beta1 de NAnt. Luego podrá usar la tarea <msbuild> con la solución 3.5.

7

nant-0.86-beta1 es compatible con 3.5, pero no en el nodo de solución, qué bueno. Terminé usando esto desde el nantcontrib:

<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 para usar las tareas msbuild. He estado jugando con ambos desde que estoy comenzando a automatizar nuestras compilaciones y el msbuild es más rápido de poner en marcha. También creo que la idea de usar los archivos de solución/proyecto reales para ejecutar la construcción es solo una 'buena idea', ya que significa que toda la información de construcción está en un solo lugar. (En lugar de tener una solución/proyecto para VS y una configuración de Nant). –

2

Ver Building the platform code with nant and VS2008

Ésta es aquí en desbordamiento de pila. Básicamente, solo tiene un par de opciones, controle todas las compilaciones usted mismo con archivos de compilación de proyectos, archivos de compilación comunes y un archivo de compilación principal. O ejecute la tarea Exec para ejecutar la versión correcta de MSBuild para cada solución que desee compilar.

Cuestiones relacionadas