Il semble qu'il y ait (au moins) deux options pour que nant utilise les fichiers csproj: en utilisant la tâche NAntContrib ou en utilisant msbuild.exe directement (par exemple, codecampserver). Est-ce que je lis ce droit, et si oui, quel est l'avantage d'utiliser msbuild.exe sur la tâche NAntContrib?<msbuild> tâche ou msbuild.exe avec NAnt?
15
A
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.
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>
Wow, merci. Je n'ai jamais imaginé que NAntContrib était si loin derrière. – keithm
-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). –
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