Developer Powershell for VS 2019をWindows Terminalから開く
はじめに
Visual Studio 2019をインストールするとスタートメニューにDeveloper Powershell for VS 2019
が追加されます。
これはWindows PowerShellのウインドウが開くのでWindows Terminalから開けるようにします。
Developer Powershell for VS 2019のプロパティを確認する
スタートメニューからファイルの保存場所を開き、ショートカットのプロパティを開くと以下のように設定されていました。
ショートカット名
Developer PowerShell for VS 2019
リンク先
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noe -c "&{Import-Module """C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"""; Enter-VsDevShell 19a43273}"
作業フォルダ
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\"
Visual StudioのインスタンスIDを確認する
Enter-VsDevShell
の引数の19a43273
(Visual StudioのインスタンスID)はPC毎に異なります。
ショートカットかvswhereコマンドの出力をコピペしてください。
cmdの場合
"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -property instanceId
PowerShellの場合
& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -property instanceId
Windows Terminalに設定を追加する
設定 > プロファイル > 新規作成から以下の設定を追加します。
アイコンは既存のPowerShellの設定を流用しています。
カスタマイズ
デフォルトのままではいくつか使いにくいのでいくつか設定を変更します。
x64版を使う
デフォルトはx86版なのでx64版で起動するためにEnter-VsDevShell
の引数に-DevCmdArguments -arch=x64
を追加します。[1]
起動パスを変更する
デフォルトの起動パスはVisual Studioから新規プロジェクトを作る時のプロジェクトの場所です。
ホームパスから起動したいのでEnter-VsDevShell
の引数に-StartInPath %USERPROFILE%
を追加します。
シェルをpwshに変更する
ショートカットのシェルはWindows PowerShell(powershell.exe)でしたがPowerShell CoreやPowerShell 7(pwsh.exe)に変更する事もできます。
pwshから以下のコマンドを実行するとpwsh.exeのフルパスが出力されます。
これとC:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
と入れ替えるとpwshから起動できます。
(gcm pwsh.exe).Source
外観を変更する
Developer Powershell for VS 2019は普段のシェルと違うので外観を変えて違いを分かりやすくします。
できたもの
- x64版へ変更
- 起動パスをホームパスに変更
- シェルをPowerShell 7に変更
C:\Program Files\PowerShell\7\pwsh.exe -noe -c "&{Import-Module """C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"""; Enter-VsDevShell 19a43273 -StartInPath %USERPROFILE% -DevCmdArguments -arch=x64}"
Discussion
Thank you so much for the explaination. I have been searching the web for the past two hours trying to figure out what the numer after "Enter-VsDevShell" is for. You the real mvp.