web-dev-qa-db-ja.com

Visual Studio2017開発者コマンドプロンプトが現在のディレクトリを切り替えます

「VS2017の開発者コマンドプロンプト」コマンドラインツールの奇妙な動作が発生します。通常、以前のバージョンのVisual Studioでは、このスクリプト(VsDevCmd.bat)は、実行した場所から現在のディレクトリを混乱させていませんでした。今ではそれが変わっているようです。簡単なワークフローの1つは、ショートカット「VS 2017の開発者コマンドプロンプト」を開始することであり、「開始」ディレクトリを尊重しません。 enter image description here

万が一、誰かがこの問題を見ましたか?以前はショートカットがあり、ソースディレクトリでCMDを起動し、後でTFS/msbuildコマンドを使用していたので、本当にバグがあります。

8
void

VSCMD_START_DIR環境変数を設定して、終了時にvsdevcmd.batをそのディレクトリに変更することができます。それ以外の場合は、%USERPROFILE%\sourceディレクトリがあるかどうかを確認し、それに変更します(これが表示されます)。

「VS2017の開発者コマンドプロンプト」の「ターゲット」を次のように変更して、特定のディレクトリに変更することができます。

%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は「開始」値(つまり「カレントディレクトリ")。

9
Christian.K

::レドモンドの一部のロケット科学者は、VS15VsDevCmd.batにcwdを変更させました。 pushd/popdはそれを修正します。 pushd%CD%call "C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Professional\Common7\Tools\VsDevCmd.bat" popd

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

1
Kafka

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

CMDまたはPowerShellを使用してEntityFrameworkCoreを操作するのに慣れているという正しい方法で、あなたの質問を確認した場合。これを行うには、[ソリューションエクスプローラー]パネルで右クリックし、コンテキストメニューで[ファイルエクスプローラーでフォルダーを開く]をクリックする必要があります。ファイルエクスプローラーのアドレスバーで、cmdまたはpowershellと入力し、プロジェクトフォルダーからコマンドラインを起動します。

0
Denis