「VS2017の開発者コマンドプロンプト」コマンドラインツールの奇妙な動作が発生します。通常、以前のバージョンのVisual Studioでは、このスクリプト(VsDevCmd.bat)は、実行した場所から現在のディレクトリを混乱させていませんでした。今ではそれが変わっているようです。簡単なワークフローの1つは、ショートカット「VS 2017の開発者コマンドプロンプト」を開始することであり、「開始」ディレクトリを尊重しません。
万が一、誰かがこの問題を見ましたか?以前はショートカットがあり、ソースディレクトリでCMDを起動し、後でTFS/msbuildコマンドを使用していたので、本当にバグがあります。
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
は「開始」値(つまり「カレントディレクトリ")。
::レドモンドの一部のロケット科学者は、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"%*
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を使用してEntityFrameworkCoreを操作するのに慣れているという正しい方法で、あなたの質問を確認した場合。これを行うには、[ソリューションエクスプローラー]パネルで右クリックし、コンテキストメニューで[ファイルエクスプローラーでフォルダーを開く]をクリックする必要があります。ファイルエクスプローラーのアドレスバーで、cmdまたはpowershellと入力し、プロジェクトフォルダーからコマンドラインを起動します。