WinGetのプレビュー機能「WinGet構成ファイル」を使うと、VisualStudioの構成ファイルインポートのような少し複雑なセットアップも自動化できる。
MSのサイトに必要な情報は一通り書いてあるが、情報量が多いので「最低限これをやりたい」という時の手順がちょっと分かりづらい。
というわけで、「Visual Studio 2022を、.vsconfigファイルで構成を指定してインストールする」だけの最低限の手順をこの記事にまとめる。Windows 10 22H2環境で動作確認済み。(DevHomeと違って、Win10でも実行可能)
次の順で説明する。
- 構成ファイルを作成する手順
- インストールする環境での手順
1の手順を一度終えてしまえば、あとはインストールしたい環境で2の手順を実行すれば良い。
構成ファイル作成側の手順
- configuration.dsc.yamlという名前のファイルを作成する。
- ※1の内容を書いて保存する。
※1
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2 properties: resources: - resource: Microsoft.WinGet.DSC/WinGetPackage id: vsPackage directives: description: Install Visual Studio 2022 Enterprise allowPrerelease: true settings: id: Microsoft.VisualStudio.2022.Enterprise source: winget - resource: Microsoft.VisualStudio.DSC/VSComponents dependsOn: - vsPackage directives: description: Install required VS workloads allowPrerelease: true settings: productId: Microsoft.VisualStudio.Product.Enterprise channelId: VisualStudio.17.Release includeRecommended: true vsConfigFile: '${WinGetConfigRoot}\.vsconfig' configurationVersion: 0.2.0
簡単に内容を説明する。
- 1行目に、作成するファイルの形式を書く。今回はVer.0.2
- 2行目以降に、インストール対象のリソースを記載する。ここでは、まずwingetでVS2022Ent.をインストール。その次に.vsconfigを使ってコンポーネントをインストール。という2つ。.vsconfigファイルは、wingetを実行するフォルダに置くものとする。('${WinGetConfigRoot}.vsconfig')
- Ver.0.2なので、最後の行に「configurationVersion: 0.2.0」を記載する(JSONとして成立していれば最後の行にする必要は無い)
このようになっているので、このファイル1つで、まっさらな環境に対して指定した構成のVisualStudioをインストールできる。
インストールする環境での手順
初回のみ
- WinGetのプレビューバージョンをインストール
- コマンドプロンプトで
winget settings
を入力するとjsonファイルが関連付けで開かれるので、notepadなどを選んで開く - ※2のように追記して保存して閉じ、「WinGet構成ファイル」プレビュー機能を有効にする
※2
追記する内容:
"experimentalFeatures": { "configuration": true },
変更前(例):
{ "$schema": "https://aka.ms/winget-settings.schema.json", // For documentation on these settings, see: https://aka.ms/winget-settings // "source": { // "autoUpdateIntervalInMinutes": 5 // }, }
変更後:
{ "$schema": "https://aka.ms/winget-settings.schema.json", // For documentation on these settings, see: https://aka.ms/winget-settings // "source": { // "autoUpdateIntervalInMinutes": 5 // }, "experimentalFeatures": { "configuration": true }, }
インストール
- 作成済みのconfiguration.dsc.yamlと使用する.vsconfigファイルを同じフォルダへ置く
- コマンドプロンプトを開いて、上記ファイルを置いたフォルダをカレントにする
- コマンド
winget configure -f configuration.dsc.yaml
を実行 - 長めの英文で警告が出るので、問題なければyを入力して実行(大雑把に言うと「構成ファイルの通りにインストールするからな。MSは責任取らないぞ。良いか?」という趣旨)
あとは待つだけ。