2010-03-01 4 views
5

Comment dois-je indiquer à la tâche msbuild de mon script nant qu'il doit utiliser .net 4.0 rc?Tâche Nant msbuild avec .net 4.0 rc

+0

Pourquoi existe-t-il une tâche msbuild dans votre script nant? Est-ce que vous utilisez msbuild, pourquoi le feriez-vous de cette façon? –

+1

Vous pouvez utiliser NAnt pour gérer les tâches d'automatisation de projet globales (par exemple, exécuter des tests, exécuter des analyses, des versions, des empaquetages ...) et déléguer à MSBuild pour la compilation. –

+0

Grant est correct, Nant effectue la construction, exécute le test, exécute ncover, puis gère certains scripts de base de données. –

Répondre

4

Je pense que la dernière NAnt/NAntContrib par défaut à .NET 3.5, vous devrez donc changer cela à 4.0. Il existe une propriété NAnt pour gérer cela (<property name="nant.settings.currentframework" value="net-4.0" />), qui devrait aller vers le haut de votre fichier de construction NAnt.

Ensuite, vous devrez aller dans le fichier de configuration de votre NAnt et ajouter le nœud 4.0, de sorte que NAnt (et par extension NantContrib) soit conscient de la nouvelle version du CLR.

+0

Cela semble l'avoir résolu. Je voulais juste joindre un lien vers un blog où j'ai trouvé la section de configuration nant réelle. Il suffit de mettre à jour le numéro de version à la version candidate et ajouter une ligne à la section de démarrage. http://paigecsharp.blogspot.com/2009/08/nant-net-framework-40-configuration.html –

+0

C'est essentiellement ce que j'ai dû faire en essayant mes builds automatisés avec VS 2010/.NET 4. Désolé, je ne pouvais pas Pas coller la solution ici, mais je n'avais pas le code à portée de main. Je suis heureux d'avoir pu vous aider à trouver la solution. –

1

La première option consiste à modifier l'exécutable utilisé par la tâche MSBuild. Selon le doco, il s'agit d'une propriété de structure. Vous devrez donc la modifier dans le fichier de configuration nant principal plutôt que dans votre script individuel, et vous devrez le faire sur chaque machine sur laquelle vous prévoyez de construire le script.

L'autre option consiste à utiliser la tâche exec à la place. This question et réponse devrait aider avec cela.

EDIT: J'ai oublié de mentionner les répertoires MSBuild. Pour modifier les versions, utilisez simplement un MSBuild différent.

2,0:% windir% \ Microsoft.NET \ Framework \ v2.0.50727 \ MSBuild.exe
3,5:% windir% \ Microsoft.NET \ Framework \ v3.5 \ MSBuild.exe
4.0b2:% windir% \ Microsoft.NET \ Framework \ v4.0.21006 \ MSBuild.exe