2009-07-28 6 views

Répondre

23

NAntContrib suppose que .NET Framework V2.0. Si vous souhaitez utiliser .NET 3.5, vous devez appeler MsBuild.exe directement. Lorsque vous effectuez une mise à niveau vers de nouvelles versions de .NET, vous devez uniquement modifier la propriété MSBuildPath.

Voici un exemple:

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

La valeur MSBuildPath pour les différentes versions de .NET sont

  • 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, 4.5.1 , 4.5.2 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe

Pour une version 32 bits, changer Framework64 à Framework

Mise à jour Faisant suite à certains commentaires, l'attribut value est utilisé pour les paramètres qui ne disposent pas d'espaces. line est utilisé pour les paramètres qui doivent être délimités en raison des espaces. Sinon, l'application utiliserait l'espace comme une fin d'entrée.

+0

Wow, merci. Je n'ai jamais imaginé que NAntContrib était si loin derrière. – keithm

+7

-1 Vous pouvez utiliser avec .NET 3.5. Assurez-vous que vous avez les derniers nightlies de NAnt et NAntContrib (testé NAnt Nightly 20090130 et NAntContrib Nightly 20090201). –

+0

Je suis nouveau à NAnt et suis un peu confus au sujet de la signification de la arg ligne arg valeur lorsqu'il s'agit de msbuild. Quelqu'un peut-il m'expliquer la différence car la documentation ne m'a toujours pas éclairci les choses. – sheir

2

est ici seulement un objectif

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