はじめに
開発環境の構築/更新は可能な限りCLIからコマンド一発で済ませたいところです。そのための一般的な手法はなんらかのパッケージマネージャーを利用することですが、Visual Studioの場合、インストールするコンポーネントを各自にあった状態でインストールする必要があり、単純にはいきません。
そこでここでは、Powershellからインストール・更新する方法を紹介します。
構成ファイルのエクスポート
詳細な設定は構成ファイルを利用する方法が間違いがありません。
ここではすでに構築されている環境から構成ファイルをエクスポートし、つぎの環境で(もしくは他人の環境で)同じ環境を作る方法を説明します。
まずVisual Studioのインストーラーを起動し「構成のエクスポート」を選択します。
つづいて保存先を選択したあと「詳細のレビュー」を押下します。
確認後「エクスポート」を選択することで、現在の状態のままの構成ファイルが保存されます。
PowerShellからインストール・更新する
つぎのような.ps1ファイルを構成ファイルと同じフォルダに作成、実行しましょう。
こちらはEnterprise版の前提になっていますので、適宜「vs_community.exe」なり「vs_professional.exe」に置き換えましょう。
if (0 -eq ((vswhere -utf8 -format json | ConvertFrom-Json).Length))
{
Invoke-WebRequest -UseBasicParsing -Uri http://aka.ms/vs/16/release/vs_enterprise.exe -OutFile vs_enterprise.exe
Start-Process -FilePath vs_enterprise.exe -ArgumentList "--config `"${pwd}\.vsconfig`" --passive --norestart --wait" -Verb runas -Wait
}
else
{
Invoke-WebRequest -UseBasicParsing -Uri http://aka.ms/vs/16/release/vs_enterprise.exe -OutFile vs_enterprise.exe
Start-Process -FilePath vs_enterprise.exe -ArgumentList "update --passive --norestart --wait" -Verb runas -Wait
}
ちなみにVSをひとつしかインストールしない前提になっているので、環境が異なる場合はif分のところを修正してください。
これで未インストールの場合は新しくインストールされ、インストール済みの場合は最新のバージョンに更新されます。
なお構成ファイルに基づき、構成を変更したい場合はつぎのように実行します。
Invoke-WebRequest -UseBasicParsing -Uri http://aka.ms/vs/16/release/vs_enterprise.exe -OutFile vs_enterprise.exe
Start-Process -FilePath vs_enterprise.exe -ArgumentList "modify --config `"${pwd}\.vsconfig`" --passive --norestart --wait" -Verb runas -Wait
以上です。