Visual studio 2017 开发者命令提示符切换当前目录

Visual studio 2017 Developer Command Prompt switches current directory

我发现 "Developer Command Prompt for VS 2017" 命令行工具有奇怪的行为。通常在 visual studio 的早期版本中,此脚本 (VsDevCmd.bat) 不会从您 运行 所在的位置弄乱当前目录。现在它似乎改变了它。一个简单的工作流程就是启动快捷方式 "Developer Command Prompt for VS 2017",它不支持 "Start in" 目录:

有没有人看过这个问题?这真的让我很烦恼,因为我曾经有一个快捷方式并在我的源目录中启动 CMD,之后使用 TFS/msbuild 命令。

您可以将 VSCMD_START_DIR 环境变量设置为 vsdevcmd.bat 完成后更改到该目录。否则它会检查你是否有一个 %USERPROFILE%\source 目录并切换到那个目录(这是你看到的)。

您可以将 "Developer Command Prompt for VS 2017" 的 "Target" 更改为类似以下内容以更改特定目录:

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

请注意,vsdevcmd.bat 的路径需要放在一组额外的双引号中。

或者,重命名或删除 %USERPROFILE%\source 目录(请注意,这似乎是某种新的 "standard" 源目录),这将使 vsdevcmd.bat 尊重 "Start In"-值(即"current directory")。

:: Redmond 的一些火箭科学家让 VS15 VsDevCmd.bat 改变了 cwd; pushd/popd 解决了这个问题。 推 %CD% 打电话 "C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\Tools\VsDevCmd.bat" 弹出

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

vsdevcmd_end.bat,REM出线:

    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"
       )
   )   

如果我以正确的方式看到你的问题,我习惯于在 CMD 或 PowerShell 的帮助下使用 EntityFramework Core。为此,您应该在“解决方案资源管理器”面板中右键单击,然后在上下文菜单中单击“在文件资源管理器中打开文件夹”。在文件资源管理器的地址栏中键入 cmd 或 powershell,您将从项目文件夹启动命令行。