2009-08-06 6 views
1

Nous avons une base de code importante dans VS 2008. Nous avons des développeurs qui ont besoin de s'appuyer sur l'IDE VS pour le développement au jour le jour. Mais nous avons également des dépendances compliquées et des étapes de déploiement et nécessitent une génération nocturne automatisée.Comment utiliser un outil comme NAnt pour les builds à grande échelle tout en permettant aux développeurs d'utiliser l'IDE VS?

Je connais NAnt. Il est parfait pour nos étapes de construction et de déploiement hors IDE. Malheureusement, je n'ai pas vu une bonne façon d'intégrer ses étapes de construction dans l'EDI. Par exemple, les développeurs voudront pouvoir créer CTRL-SHIFT-B. J'ai vu des étapes pour ajouter NAnt comme un outil de construction externe, mais cela ne permet pas au développeur de double-cliquer sur les erreurs pour accéder à la source.

MSBuild est-il assez bon aujourd'hui? Y a-t-il autre chose? Je ne peux pas croire que nous sommes les premiers à gérer des builds compliqués et des développeurs pointilleux.

EDIT: Je vois à partir de this question and answers que MSBuild sera probablement le chemin à parcourir si je veux une intégration complète de l'IDE. Des arguments contre cela?

Répondre

2

Ok Je suis un peu biaisé mais MSBuild est définitivement le chemin à parcourir. MSBuild est actuellement utilisé pour créer Visual Studio lui-même afin qu'il soit capable. Il y aura également une nouvelle version de MSBuild avec Visual Studio 2010 (en fait .NET 4.0) qui aura un tas d'améliorations, y compris la construction de projets C++.

Sayed Ibrahim Hashimi

Mon livre: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

Très agréable d'entendre que MSBuild sera en mesure de construire des projets de C. –

+0

Pas exactement la discussion que j'avais espéré. :/Mais pour l'instant, je pense que ça va faire. –

2

MSBuild serait la voie à suivre, de sorte que vous pouvez gérer la configuration de dépendance dans la solution VS et non le script Nant. MSBuild exécutera également les commandes de construction pré et post construction dans le projet VS, cependant, certaines propriétés spécifiques VS ne sont pas disponibles. Vous pouvez avoir Nant exécuter MSBuild sur le fichier de solution.

Je travaille sur un projet avec des builds un peu compliqués. Nous utilisons Cruise Control pour l'intégration continue, qui vérifie SVN pour les modifications, puis appelle un script Nant, qui appelle ensuite la cible MSBuild. Tous les déploiements sont effectués à partir de là. Les développeurs peuvent créer et déboguer sans avoir besoin de connaissances sur la façon dont ils sont déployés, ce qui facilite la création de nouveaux développeurs et leur permet de se concentrer uniquement sur le développement et de laisser le Release Manager gérer les builds et les déploiements.

+0

Intéressant. Pour confirmer, est-ce que je comprends que CC exécute Nant qui exécute MSBuild sur une solution (ou des solutions) qui gère à son tour les dépendances de projet en interne? Si oui, moins, c'est à peu près exactement ce que j'avais imaginé. –

+0

C'est exact, Jamie. De cette façon, les développeurs ont le contrôle sur la gestion des dépendances et des ressources. S'ils peuvent le publier, le serveur de build peut le déployer. Le script NAnt ne doit être modifié que si une autre application de couche de présentation (c'est-à-dire une nouvelle console ou une nouvelle application Web) a été ajoutée. Pour des choses comme, en ajoutant une nouvelle ressource DLL dans VS, CC construit normalement avec la ressource ajoutée sans modification du script NAnt actuel. – Shawn

0

Avez-vous essayé NUBuild? Il est très approprié pour faire des "constructions locales" par les développeurs. De plus, cela réduira l'échec de la construction en permettant aux développeurs de les détecter rapidement et non après qu'ils ont été vérifiés dans le contrôle source. Une fois qu'il a été configuré, il est aussi simple qu'exécuter une commande dans un fichier batch pour construire des projets. Try it out -

http://nubuild.codeplex.com

Questions connexes