Pregunta

Parece que hay (al menos) dos opciones para conseguir Nant utilizar csproj archivos: mediante la tarea de NAntContrib o usando msbuild.exe directamente (por ejemplo, CodeCampServer ). Estoy leyendo este derecho, y si es así, ¿cuál es la ventaja de utilizar msbuild.exe cargo de la tarea NAntContrib?

¿Fue útil?

Solución

El NAntContrib asume .NET Framework v2.0. Si desea utilizar .NET 3.5, tendrá que llamar directamente MSBuild.exe. Como actualizar a nuevas versiones de .NET, sólo es necesario modificar la propiedad MSBuildPath.

Este es un ejemplo:

<property name="MSBuildPath" value="C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"/>    
<target name="build">
    <exec program="${MSBuildPath}">
        <arg line='"${SolutionFile}"' />
        <arg line="/property:Configuration=${SolutionConfiguration}" />
        <arg value="/target:Rebuild" />
        <arg value="/verbosity:normal" />
        <arg value="/nologo" />
        <arg line='/logger:"C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll"'/>
    </exec>
</target>

El valor MSBuildPath para diferentes versiones de .NET son

  • 2,0, 3,0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\MSBuild.exe
  • 3,5 C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe
  • 4, 4.5.x, 4.6.x, 4.7.x C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe

Para una acumulación de 32 bits, el cambio Framework64 a Framework

Actualizar El seguimiento de algunos de los comentarios, el atributo value se utiliza para los parámetros que no tienen espacios. line se utiliza para los parámetros que deben ser delimitados debido a los espacios. De lo contrario, la aplicación sería utilizar el espacio como un final de la entrada.

Otros consejos

Este es un objetivo sencillo

    <target>

    <loadtasks assembly="${nant::get-base-directory()}/../../nantcontrib-0.85/bin/NAnt.Contrib.Tasks.dll" />

    <msbuild project="${filepath.root}/yourproject.csproj" verbose="true">     
          <arg value="/p:Platform=${build.platform}" />
          <arg value="/t:Rebuild" />
          <arg value="/p:OutputPath=${build.dir}/bin/" />
        </msbuild>

 </target>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top