Visual Studio 2017开发人员命令提示切换当前目录
我收到了“开发人员命令提示符VS 2017”命令行工具的奇怪行为。通常在以前版本的Visual Studio中,这个脚本(VsDevCmd.bat)并不会从你运行它的地方搞乱当前目录。现在它似乎改变了它。一个简单的工作流程就是启动快捷方式“开发人员命令提示符VS 2017”,并且不遵守“开始”目录: Visual Studio 2017开发人员命令提示切换当前目录
任何人看到这个问题?它真的让我感到迷惑,因为我曾经有一个快捷方式,并在我的源代码目录中启动CMD,之后使用TFS/msbuild命令。
您可以将VSCMD_START_DIR
环境变量设置为vsdevcmd.bat
在完成时更改为该目录。否则,它会检查您是否有%USERPROFILE%\source
目录并更改为(这是您所看到的)。
你可以改变“目标”为“开发命令提示符的VS 2017年”,以类似下面有变化到一个特定的目录:
%comspec% /k "set VSCMD_START_DIR=C:\temp && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools\VsDevCmd.bat""
注意,路径vsdevcmd.bat
需求是再加一套双引号。
或者,重命名或删除%USERPROFILE%\source
目录(请注意,这似乎是某种新的“标准”目录的源),这将使vsdevcmd.bat
兑现“开始”价值(即“当前目录”) 。
::一些火箭科学家在雷德蒙做了VS15 VsDevCmd.bat改变了CWD; pushd/popd修复了这个问题。 PUSHD%CD% 调用 “C:\ Program Files文件(x86)的\微软的Visual Studio \ 2017年\专业\ Common7 \工具\ VsDevCmd.bat” POPD
“C:\ Program Files文件(x86)的\ CruiseControl的.NET \服务器\ 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" ) )
这个新的“功能”还打破了调用vsdevcmd.bat和初始目录设置为$(ItemDir)的外部工具。最好的解决方法是从用户配置文件中删除Source文件夹。 – apr
发现删除源文件夹没有帮助。每次保存文件(项目外)时,IDE都会重新创建%userprofile%\ Source \ Repos文件夹。 – apr