/ / Comment exécuter la commande 'msbuild' à partir d'un fichier de commandes - visual-studio-2010, visual-studio, fichier de commandes, console

Comment exécuter la commande 'msbuild' à partir d'un fichier batch - visual-studio-2010, visual-studio, fichier de commandes, console

Je voudrais créer un fichier de commandes pour créer les constructions de mon projet VS en un clic. Tous les jours, je fais les étapes suivantes:

  1. Ouvre une console cmd en tant qu’administrateur
  2. Accédez au chemin de mon projet / solution (à l'aide du CD .., commandes du CD)
  3. Ecrivez la commande suivante pour créer le build:

    msbuild mySolution.sln / p: configuration = débogage

Comme indiqué précédemment, "j'aimerais faire tout ce processus en un simple clic. Je tente donc de créer un fichier .bat pour le faire.

C'est le code de mon fichier batch:

set location="C:myPath..MyFolderSolution"
set pathMSBuild = "C:WindowsMicrosoft.NETFramework64v4.0.30319MSBuild.exe"

@echo off
cls

call %pathMSBuild%
cd %location%
msbuild.exe "lucre.sln" /p:configuration=debug
pause

Cependant, lorsque j'essaie d'exécuter le fichier de commandes, l'erreur suivante apparaît: "msbuild" n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes.

Tout indice ou aide pour savoir si c'est possible et si oui, comment le faire sera très apprécié

Cordialement!

Réponses:

17 pour la réponse № 1

Vous n'êtes pas dans le bon répertoire, vous devez vous connecter au répertoire dans lequel se trouve msbuild. Essayez ceci:

set pathMSBuild="C:WindowsMicrosoft.NETFramework64v4.0.30319"
@echo off
cls
cd %pathMSBuild%
msbuild.exe "C:myPath..MyFolderSolutionlucre.sln" /p:configuration=debug
pause

Ou vous pouvez ajouter le répertoire msbuild à votre chemin et ignorer les lignes avec set et cd.


2 pour la réponse № 2

Si vous ne voulez pas vous connecter au répertoire d’installation de msbuild, vous pouvez également charger les variables d’environnement Visual Studio comme ceci:

call "C:Program Files (x86)Microsoft Visual Studio 11.0VCvcvarsall.bat" x86_amd64

(Voir aussi ce Question)


2 pour la réponse № 3

Les deux réponses utilisent des chemins codés en dur, qui peuvent ne pas toujours fonctionner. Utilisez ceci à la place:

@if exist "%VS100COMNTOOLS%vsvars32.bat" call "%VS100COMNTOOLS%vsvars32.bat"

Changement VS100 Pour toute autre version, vous pouvez également insérer ces lignes une par une pour prendre en charge plusieurs versions de VS simultanément:

@if exist "%VS100COMNTOOLS%vsvars32.bat" call "%VS100COMNTOOLS%vsvars32.bat"
@if exist "%VS140COMNTOOLS%vsvars32.bat" call "%VS140COMNTOOLS%vsvars32.bat"

Si cela est fait, vous ne dépendez plus d’une version spécifique de .Net Framework ou de Visual Studio


1 pour la réponse № 4

Vous pouvez également ajouter le répertoire dans lequel se trouve MSBuild.exe à la variable d'environnement PATH afin d'appeler msbuild n'importe où.

Donc, dans le fichier chauve-souris, cela peut ressembler à ceci:

cd C:PathToSoultion
msbuild TheSolutionName.sln /p:configuration=debug
pause

Je sais que la question se pose déjà dans plusieurs années, mais j'espère que cela pourra aider quelqu'un.