12 votes

Comment construire une solution en utilisant un fichier batch

Je veux construire une solution .NET en utilisant un fichier batch.

Je suis conscient que je dois utiliser la déclaration suivante

devenv /build release "D:\Source Code\Source\test.sln"

Mais je ne sais pas comment créer un fichier batch qui s'exécutera à l'invite de commande VS.

18voto

Simon P Stevens Points 17536

L'invite de commande de Visual Studio charge juste quelques variables et les paramètres du chemin. C'est tout, ce n'est rien de spécial, ce n'est pas une invite de commande différente, c'est la même invite de commande avec quelques paramètres configurés. Vous pouvez charger les mêmes paramètres dans votre propre fichier batch en incluant la ligne suivante en haut :

call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86

(Évidemment, pour différentes versions de VS, le chemin peut changer légèrement)

Vous pouvez remplacer "x86" par l'architecture appropriée pour votre machine. Les valeurs autorisées sont :

  • x86
  • amd64
  • x64
  • ia64
  • x86_amd64
  • x86_ia64

Cela dit, je ne pense pas qu'il soit nécessaire de charger toutes les variables/chemins ; il suffit de fournir le chemin d'accès complet à l'interface de l'utilisateur. devenv.exe fichier. Vous pouvez essayer ceci à la place :

"c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" /build release "D:\Source Code\Source\test.sln"

(Encore une fois, le chemin changera pour les différentes versions de visual studio)

6voto

Joe Points 60749

L'exemple de fichier batch ci-dessous détectera le répertoire d'installation qui contient devenv.exe en le recherchant dans le registre (pour VS2005, peut facilement être adapté pour d'autres versions) et exécutera devenv.exe. Est-ce que c'est ce que vous recherchez ?

@echo off

CALL :GETVS2005DIR
IF "%VS2005DIR%" == "" GOTO NOVS2005
IF NOT EXIST "%VS2005DIR%" GOTO NOVS2005

%VS2005DIR%devenv.exe ...
GOTO :EOF

:GETVS2005DIR
for /f "tokens=1,2* delims= " %%i in ('reg query HKLM\Software\Microsoft\VisualStudio\8.0 /v InstallDir') do set VS2005DIR=%%k
GOTO :EOF

:NOVS2005
echo.
echo Visual Studio 2005 installation directory not found
echo.
GOTO :EOF

Notez également que tant que votre solution ne contient pas de projet Setup, vous pourrez normalement la construire en utilisant MSBUILD, qui est plus simple et fonctionne sur une machine sans Visual Studio installé :

REM Check MsBuild is available (this is for V2.0, use a different version if desired)
SET MSBUILD=%WINDIR%\Microsoft.NET\Framework\v2.0.50727\MsBuild.exe
IF NOT EXIST "%MSBUILD%" GOTO NOMSB

"%MSBUILD%" MySolution.sln /t:rebuild /p:configuration=Debug /verbosity:quiet 
GOTO :EOF

:NOMSB
echo. 
echo MSBUILD not found 
echo. 
GOTO :EOF

1voto

ho1 Points 31752

Je ne suis pas sûr de comprendre la question.

Créez simplement un fichier appelé test.bat, ajoutez la déclaration que vous avez écrite ci-dessus dans ce fichier, puis ouvrez une invite de commande VS et tapez [pathtobatfile]. \test.bat.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X