2009-05-09 5 views
4

Est-ce valide?Comment puis-je tout construire avec MSBuild à partir de la ligne de commande?

MSBuild /t=all /configuration=all 

Je veux construire TOUTES les configurations de tous les projets dans un fichier sln, etc à partir de la ligne de commande en utilisant MSBuild dans Visual Studio 2008.

Je ne veux pas avoir à les préciser quand je l'appelle MSBuild , les fichiers sln/proj ont tous cette information. Je ne veux pas modifier mon script de construction si j'ajoute des configurations aux fichiers de projet. Donc pour la cible, je peux utiliser BuildAll. Si je laisse la configuration vide va-t-il tout construire ou est-ce que "BuildALL" est valide pour la configuration?

EDIT

essentiellement ce que je demande est donné un fichier ou SLN vcproj, je veux msbuild itérer toutes les configurations et le construire lui-même, ou bien un mécanisme qui les découvrir si je n'ai pas spécifiquement listez-les sur la ligne de commande ou dans un script. C'est-à-dire que je ne souhaite pas mettre à jour mon script de génération lorsque j'ajoute ou supprime une configuration. Cela semble être une chose assez raisonnable à vouloir faire.

+1

Comprenez que vous ne voulez pas avoir à mettre à jour le script de construction chaque fois que vous ajoutez une configuration, mais de façon réaliste; Combien de fois fais-tu ça? Je voudrais juste écrire une cible qui appelle toutes les cibles dont vous avez besoin. –

+1

L'autre problème est que je veux juste utiliser le même fichier de commande/batch et lui donner tous les fichiers sln que j'ai. Je veux utiliser le même fichier batch pour chacun d'entre eux. Je suis paresseux - je ne veux pas avoir à taper tous ceux dehors. – Tim

Répondre

7

Vous ne pouvez pas par défaut créer toutes les configurations à l'aide des options de ligne de commande MSBuild. Pour ce faire, vous devez créer une nouvelle cible (projet VS).

La façon dont je le fais est:

msbuild /t:BuildAll /Configuration:"Debug;Release;ContinuousIntegration" 

Je fais une cible standard, et l'appellent Buildall, et pour chaque projet, je voulais automatiser, je venais de créer cette cible et font dépendre toutes les cibles que vous voulez construire automatiquement.

+0

Merci. J'ai d'autres configurations - par ex. static lib vs dynamic, etc. – Tim

+1

Dans les versions ultérieures de Visual Studio, vous devrez peut-être changer '=' pour ':' –

Questions connexes