Meilleur outil de construction .NET

Duplication possible:
NAnt ou MSBuild, lequel choisir et quand?

Quel est le meilleur outil de construction pour .NET ?

J’utilise actuellement NAnt mais uniquement parce que j’ai de l’expérience avec Ant . MSBuild est-il préféré?

    Nous utilisons en fait une combinaison de NAnt et MSBuild avec CruiseControl . NAnt est utilisé pour le contrôle de stream de script et appelle MSBuild pour comstackr des projets. Une fois la génération physique déclenchée, NAnt est utilisé pour publier les sorties de génération de projet individuelles dans un emplacement partagé.

    Je ne suis pas sûr que ce soit le meilleur processus. Je pense que beaucoup d’entre nous recherchent toujours un outil de construction génial. Une chose prometteuse que j’ai entendue récemment sur .NET Rocks, l’ épisode 362 , est PSake de James Kovac , un système de construction entièrement basé sur PowerShell. Cela semble très prometteur, car ce que vous pouvez faire avec PowerShell est en théorie assez illimité.

    Je voudrais juste lancer FinalBuilder dans le mix. Ce n’est pas gratuit, mais si vous en avez marre de modifier des fichiers XML et que vous voulez un environnement un peu plus agréable ( IMO ), je vais essayer.

    J’ai travaillé avec tous et je suis toujours retourné à FinalBuilder.

    Il existe un autre nouvel outil de compilation (un wrapper très intelligent) appelé NUBuild . Il est léger, open source et extrêmement facile à installer et offre une maintenance presque sans contact. J’aime vraiment ce nouvel outil, et nous en avons fait un outil standard pour notre construction continue et l’intégration de nos projets (nous avons environ 400 projets dans 75 développeurs). Essaye le.

    http://nubuild.codeplex.com/

    • Interface de ligne de commande facile à utiliser
    • Possibilité de cibler toutes les versions de .NET Framework, à savoir 1.1, 2.0, 3.0 et 3.5
    • Prend en charge la configuration basée sur XML
    • Prend en charge les références de projet et de fichier
    • Génère automatiquement la «liste de construction complète commandée» pour un projet donné – Maintenance sans contact.
    • Capacité à détecter et afficher des dépendances circulaires
    • Effectuer la construction parallèle – décide automatiquement quels projets de la liste de construction générée peuvent être construits indépendamment.
    • Capacité à gérer des assemblys de proxy
    • Fournit un indice visuel du processus de création, par exemple, indiquant «% terminé», «état actuel», etc.
    • Génère un journal d’exécution détaillé au format XML et au format texte
    • Facilement intégré au système d’continuous integration CruiseControl.NET
    • Peut utiliser un enregistreur personnalisé comme XMLLogger lors du ciblage de la version 2.0 +
    • Possibilité d’parsingr les journaux d’erreur
    • Possibilité de déployer des assemblys construits sur l’emplacement spécifié par l’utilisateur
    • Possibilité de synchroniser le code source avec le système de contrôle de source
    • Capacité de gestion de version

    J’utilise MSBuild complètement pour la construction. Voici mon script MSBuild générique qui recherche dans l’arborescence les fichiers .csproj et les construit:

       Debug $(MSBuildProjectDirectory)\Build\$(Configuration) $(MSBuildProjectDirectory)\**\*.csproj  $(DeployDir)\*.Test.dll                               

    (Désolé si c’est un peu dense. Markdown semble enlever les lignes vides.)

    C’est assez simple, mais une fois que vous avez compris les concepts et que toutes les dépendances sont gérées automatiquement. Je devrais noter que nous utilisons des fichiers de projet Visual Studio, qui contiennent beaucoup de logique, mais ce système permet aux utilisateurs de construire de manière presque identique à la fois dans Visual Studio IDE ou sur la ligne de commande et vous permet d’append des choses à la construction canonique comme le test xUnit que vous voyez dans le script ci-dessus.

    Le groupe PropertyGroup est l’endroit où toute la configuration se produit et où les choses peuvent être personnalisées, comme l’exclusion de certains projets de la construction ou l’ajout de nouveaux masques d’assemblage de tests.

    ItemGroup est l’endroit où la logique se produit qui trouve tous les fichiers .csproj dans l’arborescence.

    Ensuite, il y a les cibles que la plupart des personnes familiarisées avec make, nAnt ou MSBuild devraient pouvoir suivre. Si vous appelez la cible Build, elle appelle __Comstack, __Deploy et __Test. La cible Clean appelle MSBuild sur tous les fichiers de projet pour qu’ils nettoient leurs répertoires, puis le répertoire de déploiement global est supprimé. Reconstruire les appels Nettoyer puis Construire.

    Rake and Albacore est une excellente combinaison. La puissance de Ruby et pas de XML.

    .NET Open Source 5 – Automatisation .NET avec râteau et germon de Liam McLennan [Tekpub.com]

    Nous utilisons Bounce , un framework pour des scripts de construction plus propres en C #.

    J’utilise un logiciel commercial, Automated Build Studio pour les besoins de la construction.

    Nous utilisons MSBuild, car nous avons commencé avec Visual Studio 2005 (maintenant Visual Studio 2008), et MSBuild était déjà intégré au SDK – la maintenance du serveur de génération est moindre. C’est un clone NAnt, en réalité – les deux outils sont infiniment flexibles en ce sens qu’ils vous permettent de créer des tâches de génération personnalisées dans le code, et les deux ont un ensemble décent de tâches de création de communauté déjà créées.

    • Tâches de la communauté MSBuild
    • NAntConsortingb

    J’ai utilisé les deux et je préfère NAnt . C’est vraiment difficile pour moi de dire que l’un est “meilleur” que l’autre.

    Cela dépend aussi de ce que vous construisez. La bibliothèque de tâches MSBuild SDC a quelques tâches spéciales. Par exemple, pour AD , BizTalk , etc.

    Plus de 300 tâches sont incluses dans cette bibliothèque, notamment les tâches suivantes: créer des sites Web, créer des pools d’applications, créer des utilisateurs ActiveDirectory, exécuter FxCop , configurer des serveurs virtuels, créer des partages de dossiers, installer GAC , configurer SQL Server , configuration de BizTalk 2004 et BizTalk 2006, etc.

    J’ai utilisé à la fois MSBuild et NAnt, et je préfère beaucoup MSBuild, principalement parce qu’il nécessite beaucoup moins de configuration par défaut. Bien que vous puissiez trop compliquer les choses et charger MSBuild avec beaucoup de données de configuration, vous pouvez simplement le diriger vers un fichier de solution / projet et le faire disparaître, la plupart du temps, dans la plupart des cas. assez.

    Utiliser un langage de script dynamic tel que Python, BOO, Ruby, etc. pour créer et gérer des scripts de génération peut être une bonne alternative à un langage XML tel que NAnt. (Ils ont tendance à être plus propres à lire que XML.)

    UppercuT utilise NAnt pour construire et il est incroyablement facile à utiliser Build Framework.

    Automatisé Création aussi simple que (1) nom de la solution, (2) chemin de contrôle de la source, (3) nom de la société pour la plupart des projets!

    http://projectuppercut.org/

    Quelques bonnes explications ici: UppercuT

    D’une manière générale, j’ai l’impression que NAnt offre plus de flexibilité par rapport à MSBuild, alors que (avec mes besoins relativement simples) je me suis bien débrouillé avec ce dernier.