Comment exécuter la commande' msbuild ' à partir d'un fichier batch

je voudrais créer un fichier batch pour faire les constructions à partir de mon projet VS en clic. Tous les jours, je ne les étapes suivantes:

  1. ouvre une console cmd comme administrador
  2. aller sur le chemin de mon projet / solution (en utilisant le CD.., CD commands)
  3. Ecrire la commande suivante pour faire la compilation:

    msbuild mySolution.sln/p: configuration=debug

Comme indiqué avant, j'aimerais pour faire tout ce processus en un clic. Donc, je suis en train de créer un .bat file pour le faire.

voici 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 j'obtiens l'erreur suivante: 'msbuild' n'est pas reconnu comme une commande interne ou externe, un programme exécutable ou un fichier de commandes.

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

salutations!

16
demandé sur MikePR 2013-07-24 01:19:42

4 réponses

Vous n'êtes pas dans le bon répertoire, vous avez besoin de cd dans le répertoire que msbuild est. Essayez ceci:

set pathMSBuild="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\"
@echo off
cls
cd %pathMSBuild%
msbuild.exe "C:\myPath\..\MyFolderSolution\lucre.sln" /p:configuration=debug
pause

ou vous pouvez ajouter le répertoire msbuild à votre chemin, et sauter les lignes avec set et cd.

17
répondu stevejoy32 2017-07-26 19:19:43

si vous ne voulez pas cd dans le répertoire d'installation de msbuild, vous pouvez aussi charger les Variables D'environnement Visual Studio comme ceci:

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

(Voir aussi ce Question)

2
répondu Vertigo 2017-05-23 10:31:20

les deux réponses utilisent des chemins codés, ce qui ne fonctionne pas toujours. Utilisez ceci à la place:

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

Modifier VS100 à n'importe quelle autre version, vous pouvez aussi mettre ces lignes une par une pour supporter 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 vous le faites de cette façon, vous ne dépendez plus d'une version spécifique de .net Framework ou Visual Studio

2
répondu Archeg 2017-12-04 13:55:41

Vous pouvez aussi ajouter le répertoire que MSBuild.exe est situé, à la variable D'environnement PATH de sorte que vous pouvez appeler msbuild n'importe où.

Donc dans le fichier bat, il peut être quelque chose comme ceci:

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

je sais que la question est déjà loin, mais j'espère que cela pourrait aider quelqu'un.

1
répondu johnsabre 2018-02-20 19:51:59