web-dev-qa-db-fra.com

L'invite de commande du développeur Visual Studio 2017 bascule le répertoire en cours

J'obtiens un comportement étrange de l'outil de ligne de commande "Developer Prompt for VS 2017". Normalement, dans les versions précédentes de visual studio, ce script (VsDevCmd.bat) ne perturbait pas le répertoire en cours à partir duquel vous l'exécutiez. Maintenant, il semble que cela change. Un flux de travail simple consisterait simplement à démarrer le raccourci "Invite de commande du développeur pour VS 2017" sans respecter le répertoire "Démarrer dans":  enter image description here

Par hasard, quelqu'un a vu ce problème? Cela me gène vraiment parce que j’avais un raccourci avec cela et que je démarrais CMD dans mon répertoire source. J'utilise ensuite les commandes TFS/msbuild.

7
void

Vous pouvez définir la variable d'environnement VSCMD_START_DIR pour que vsdevcmd.bat soit modifié dans ce répertoire à la fin. Sinon, il va vérifier si vous avez un répertoire %USERPROFILE%\source et y changer (c'est ce que vous voyez).

Vous pouvez remplacer la "cible" de "l'invite de commande de développeur pour VS 2017" par un autre élément comme suit pour modifier un répertoire particulier:

%comspec% /k "set VSCMD_START_DIR=C:\temp && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools\VsDevCmd.bat""

Notez que le chemin d'accès à vsdevcmd.bat doit être placé dans un ensemble supplémentaire de guillemets doubles.

Vous pouvez également renommer ou supprimer le répertoire %USERPROFILE%\source (notez qu'il semble s'agir d'un nouveau répertoire "standard" pour les sources), ce qui permettra à vsdevcmd.bat d'honorer la valeur "Start In" (c'est-à-dire "répertoire actuel").

8
Christian.K

vsdevcmd_end.bat , REM sur la ligne: 

    cd /d "%USERPROFILE%\Source"
   @REM Set the current directory that users will be set after the script completes
   @REM in the following order:
   @REM 1. [VSCMD_START_DIR] will be used if specified in the user environment
   @REM 2. [USERPROFILE]\source if it exists
   @REM 3. current directory
   if "%VSCMD_START_DIR%" NEQ "" (
       cd /d "%VSCMD_START_DIR%"
   ) else (
       if EXIST "%USERPROFILE%\Source" (
           cd /d "%USERPROFILE%\Source"
       )
   )   
1
caoanan

:: Un scientifique spécialisé dans les fusées à Redmond a fait changer le cwd du VS15 VsDevCmd.bat; le pushd/popd corrige cela. pushd% CD% appelez "C:\Fichiers de programme (x86)\Microsoft Visual Studio\2017\Professionnel\Common7\Tools\VsDevCmd.bat" popd

"C:\Program Files (x86)\CruiseControl.NET\server\ccnet.exe"% *

0
Kafka

Si je vois bien votre question, je suis habitué à travailler avec EntityFramework Core à l’aide de CMD ou de PowerShell. Pour cela, cliquez avec le bouton droit de la souris sur Dans le panneau de l'explorateur de solutions, puis dans le menu contextuel, cliquez sur Ouvrir le dossier dans l'explorateur de fichiers. Dans la barre d'adresse de l'explorateur de fichiers, tapez cmd ou powershell, vous lancerez la ligne de commande à partir du dossier du projet.

0
Denis