2009-05-31 5 views
5

Nous maintenons une application Windows de taille moyenne développée dans vb/C# .net dans le travail. Encore maintenant le processus de construction et de déploiement pour cette application est manuel. Je suis déterminé à automatiser ce processus en utilisant MSBuild sur lequel je n'ai pas encore de connaissance.Besoin d'amorce pour un newbie Msbuild

Notre application a une structure de construction simple, un ensemble de projets déjà regroupés en quatre solutions (.sln) et juste besoin de construire les quatre slns dans un ordre. Ensuite, publiez un projet (qui fait partie du dernier sln à construire) dans un répertoire. C'est ça. Un processus simple qui consomme déjà 30 minutes de temps de construction manuelle et je suis à peu près sûr que cela peut être accompli sans interférence manuelle en utilisant msbuild au moins 1/4 du temps.

Tous mes objectifs sont bons, j'ai commencé à chercher sur le web les ressources de MSBuild pour accomplir mon processus, mais peut-être que je suis en train de regarder autour de moi. Besoin d'un pointeur ou d'une bonne explication sur la façon de commencer et où commencer pour mon scénario simple. L'aide est très appréciée.

Répondre

5

Cela ressemble à un script très facile à écrire. Même un fichier batch ferait:

msbuild \path\to\first.sln /p:Configuration=Release 
msbuild \path\to\second.sln /p:Configuration=Release 
msbuild \path\to\third.sln /p:Configuration=Release 
msbuild \path\to\fourth.sln /p:Configuration=Release 
call deploy

Bien sûr, beaucoup mieux serait d'avoir un serveur exécutant, dire CruiseControl.NET, qui donne une interface web dans l'état de construction et de l'histoire.

Dans MS Build, il existe deux principaux points de contrôle pour l'appelant: la cible et ses propriétés. La cible est ce qu'il faut compiler, les ressources, la compilation, le déploiement, etc. Les propriétés contrôlent comment cette cible est construite.

Vous pouvez contrôler la configuration à l'aide de la propriété Configuration (voir ci-dessus). Si vous ouvrez vos fichiers proj *. *, Vous remarquerez PropertyGroup éléments. Ceux-ci sont réglables via la ligne de commande en utilisant l'argument /p.

Voici les spécifications pour les deux args:

/target:<targets> Build these targets in this project. Use a semicolon or a 
       comma to separate multiple targets, or specify each 
       target separately. (Short form: /t) 
       Example: 
        /target:Resources;Compile 

/property:<n>=<v> Set or override these project-level properties. <n> is 
       the property name, and <v> is the property value. Use a 
       semicolon or a comma to separate multiple properties, or 
       specify each property separately. (Short form: /p) 
       Example: 
        /property:WarningLevel=2;OutDir=bin\Debug\ 
+0

Merci pour votre réponse. Mais comment puis-je définir les options de configuration et tout? Par exemple, je débogue mon projet de configuration de l'application en mode DEbug mais le script devrait toujours être en mode Release. Merci encore pour votre réponse rapide. – blntechie

+0

J'ai ajouté des détails. Tout cela est assez simple et mérite d'être maîtrisé. MS Build peut automatiser ** beaucoup **. –

1

Here's a good guide qui a un grand nombre d'informations sur MSBuild, l'intégration continue et CuriseControl.NET. Certainement un bon endroit pour commencer.