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>
Questions connexes
- 1. ncover avec tâche nunit2 dans NAnt
- 2. Nant Tâche Pour IlMerge 2.9.210.0
- 3. Tâche Nant sysinfo verbose - échoue
- 4. Utilisation de nant pour créer une tâche nant personnalisée
- 5. La tâche NAnt exécutant "svn import" échoue
- 6. aspnet_compiler et msbuild.exe
- 7. Compiler WebSite Project avec NAnt
- 8. Comment utiliser <xmlpeek> dans NAnt
- 9. Signature d'un assemblage avec Nant
- 10. DELPHI et WANT ou NANT
- 11. L'utilisation de <mbunit> dans NAnt échoue
- 12. Suppression svn checkout avec NAnt
- 13. Compilateur NAnt et ASP.NET
- 14. Gallio Intégration avec NANT et CruiseControl.NET
- 15. tâche planifiée ou service Windows
- 16. checkin forcé ou checkout en utilisant NANT
- 17. nAnt exécutant .bat avec folderPath comme paramètre
- 18. Nant <copy> et maintenir la structure de répertoire
- 19. En passant de <solution> à <exec programme = msbuild> en NAnt
- 20. Comment ajouter des nœuds XML à l'aide de tâches Nant ou Nant Contribution existantes?
- 21. Nant, Booc et x64
- 22. Construire Via NAnt vs Visual Studio - Un dll manquant
- 23. L'exec NAnt ne fonctionne pas avec la redirection stdin?
- 24. Ajout d'une référence d'assembly à une tâche de script dans NAnt
- 25. Construction de projets .NET 4 avec Nant
- 26. Installation de nant avec un script batch
- 27. comment modifier la source avec NAnt?
- 28. Existe-t-il des meilleures pratiques pour écrire des tâches personnalisées NAnt, Ant ou MSBuild?
- 29. J'ai une erreur de construction d'un .vdproj sur msbuild avec nant
- 30. Comment lier DataGridView avec Liste <T> ou BindingList <T>
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