41 votes

vsvars32.bat dans Visual Studio 2017

Comme le programme d'installation de Visual Studio est nouveau à partir de la version de Visual Studio 2017, je ne parviens pas à localiser le composant Visual C ++, expliqué ici .

Comment puis-je obtenir le vsvars32.bat dans VS2017?

52voto

Hans Passant Points 475940

VS2017 souffre de très gravement cérébrolésés chemin d'installation emplacement de choix. Plus accablant muet chose qu'ils ont fait est de rendre le nom de l'édition (Professionnel, Entreprise, probablement de la Communauté) de la partie de la voie. Il est donc difficile de trouver des outils en arrière de manière fiable à partir d'une machine à une autre.

Il y a une variable d'environnement qui je pense peut résoudre le problème, l' VSAPPIDDIR variable stocke le chemin d'accès au dossier où l'IDE est installé (devenv.exe). Donc, si vous voulez exécuter vcvars32.chauve-souris à partir d'un événement de construction, alors vous devriez utiliser

   call "%vsappiddir%..\..\VC\Auxiliary\Build\vcvars32.bat" x86

Notez qu'il est de cr, pas de vs, vsvars32.chauve-souris n'existe plus. Vous pourriez peut-être en faveur de l' "Développeur de l'Invite de Commande:

   call "%vsappiddir%..\tools\vsdevcmd.bat"

Mais à en juger par votre lien, vous souhaitez exécuter le editbin.exe utilité:

   "%vsappiddir%..\..\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86\editbin.exe" args...

Le 14.10.25017 numéro de version n'est pas de la joie que ce soit, pas de réel aperçu de la façon dont va se modifier d'un jour à l'autre. Il le fera probablement.

20voto

jamars Points 131

Je sais que la question est (bien) répondu, mais je voudrais partager comment j'ai résolu le problème en espérant que cela aidera les gens à googler pour trouver une solution

@echo off

set INSTALLPATH=

if exist "%programfiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (
  for /F "tokens=* USEBACKQ" %%F in (`"%programfiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15.0 -property installationPath`) do set INSTALLPATH=%%F
)

echo INSTALLPATH is "%INSTALLPATH%"

REM Save current dir for later
pushd %CD%

if NOT "" == "%INSTALLPATH%" (
  call "%INSTALLPATH%\Common7\Tools\VsDevCmd.bat"
) else (
  goto ERROR_NO_VS15
)

:WORK
REM Retrieve the working dir and proceed
popd
echo Doing work in %CD%
svcutil this_is_just_an_example
goto END

:ERROR_NO_VS15
echo Visual Studio 2017 Tools Not Available!

:END
echo Processing ends.

Une petite explication du script ci-dessus.

vswhere.exe un seul fichier, le fichier exécutable natif, vous pouvez télécharger ou de les redistribuer à votre construction et le déploiement d'environnements de localiser Visual Studio ou d'autres produits installés avec le nouveau programme d'installation de Visual Studio 2017 (à partir de la vswhere wiki)

À partir de Visual Studio 15.2 (26418.1 Aperçu) vswhere.exe est installé dans le répertoire %ProgramFiles(x86)%\Microsoft Visual Studio\Installer (utilisation de %ProgramFiles% dans un programme 32 bits avant Windows 10). C'est un endroit fixe qui sera maintenu (comme indiqué ici)

Cela permet aux développeurs de requête pour plusieurs caractéristiques importantes d'un Visual Studio 2017 (et plus) de l'installation. En outre, l'outil a été conçu pour permettre aux différentes saveurs de Visual Studio (Community Edition, Professionnels,...), être installés sur la même machine.

Vous pouvez trouver plusieurs exemples d'utilisation ici.

Comme pour le script, la première partie

if exist "%programfiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (
  for /F "tokens=* USEBACKQ" %%F in (`"%programfiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15.0 -property installationPath`) do set INSTALLPATH=%%F
)

Les requêtes vswhere pour le Chemin d'installation de Visual Studio 2017 (version 15.0) et définit une variable nommée INSTALLPATH.

Il convient de noter que sur un 32 bits du système d'exploitation, vous devez utiliser %programfiles% au lieu de %programfiles(x86)%.

En raison de ce problème, le script enregistre le répertoire courant pour une récupération ultérieure.

Le script procède ensuite à tester le contenu de la INSTALLPATH variable. Si la variable n'est pas vide, il ajoute "Common7\Tools\VsDevCmd.chauve-souris" (qui est une bien connue chemin d'accès relatif où on peut trouver des outils de développement pour l'installation de Visual Studio). Sinon, le script accède à un message d'erreur et quitte (vous pouvez choisir de retour non nulle code d'erreur).

Si tout s'est bien passé, vous avez maintenant un plein envol environnement de développement Visual Studio à votre disposition.

Le script produit pour récupérer l' original répertoire et exécuter quelque chose, dans ce cas, un mannequin appel à svcutil.

13voto

flatline Points 13782

Il suffit de remplacer "vsvars32.bat" par "vsdevcmd.bat". Ceci est compatible au moins de retour à VS2015.

 call "$(DevEnvDir)..\tools\vsdevcmd.bat"
editbin /largeaddressaware "$(TargetPath)"
 

5voto

fsbflavio Points 86

Microsoft change le vcvars32.chauve-souris à VsDevCmd.chauve-souris dans VS 2017 lien

J'utilise vcvars32.chauve-souris en pré-construction (propriétés du projet->construire des événements), donc pour moi, j'ai changé:
"$(DevEnvDir)..\..\VC\bin\vcvars32.bat"
pour
$(DevEnvDir)\..\Tools\VsDevCmd.bat"
et cela a fonctionné!

Edit: Dans Visual Studio de 15,9 le chemin d'accès a été changé (comme Fütemire dit dans le commentaire), j'ai donc dû changer:
$(DevEnvDir)\..\Tools\VsDevCmd.bat"
pour:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat

*Vous pouvez créer une variable d'environnement pour stocker le chemin d'accès. Je ne pouvais pas trouver un déjà défini.

0voto

Sunny Points 1469

Aucune des solutions mentionnées travaillé pour moi. Après l'obtention de ma tête réchauffé de la "vsvars32.chauve-souris manquant" erreur - je suis allé à travers chaque ligne et il était trop "svcutil.exe' était manquant.

J'ai pensé à la fixation de la et cela a fonctionné. J'ai eu le chemin d'accès suivant dans ma machine pour SvcUtil.exe:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

Je définir le chemin d'accès dans la Variable d'Environnement Système et redémarré mon Visual Studio pour juste au cas où et ça a fonctionné.

Espérons que cela aide quelqu'un!

Edit: Très Étrange, quand j'ai "solution Légère charge" enabled". Dès que j'ai'ml la désactivation de la "Solution Légère Load" il commence à donner de moi même erreur!

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