Open3

サイレントインストール時のインストールオプション指定方法の調べ方

ProudustProudust

winget コマンドや msiexecコマンドによってアプリケーションのサイレントインストールができるが、この時 GUI から指定できるインストールオプションは全てデフォルト設定になってしまう。
VSCode のインストールオプション指定方法については以前調べたものの、他のアプリケーションについてはあまり情報がないため、調べ方を調査した。

ProudustProudust

VSCode の場合 Inno Setup というソフトウェアで exe 形式インストーラが作成されており、その設定は build/win32/code.iss に書かれている。その中の [Tasks] の内容がインストールオプションとなっている。

https://github.com/microsoft/vscode/blob/3519b130fbbd41281980d726dae3ca964305b329/build/win32/code.iss#L76-L83

指定する場合は /mergetasks= に続けて、有効にしたいインストールオプションに対応する Name 値をカンマ区切りで指定する。

VSCodeUserSetup.exe /silent /mergetasks="addcontextmenufiles,addcontextmenufolders"
winget install vscode --override "/silent /mergetasks=""addcontextmenufiles,addcontextmenufolders"""
ProudustProudust

TortoiseSVN の場合 WiX Toolset というソフトウェアで msi 形式インストーラが作成されており、その設定は src/TortoiseSVNSetup/FeaturesFragment.wxs に書かれている。その中の <Feature> タグが 1 つのインストールオプションに対応している。

https://github.com/TortoiseGit/tortoisesvn/blob/3407164d485b6392053ed1344a921ffccf180926/src/TortoiseSVNSetup/FeaturesFragment.wxs#L68

指定する場合は ADDLOCAL= に続けて、有効にしたいインストールオプションに対応する <Feature> タグの Id 属性をカンマ区切りで指定する。
msi のサイレントインストール (/qn) には管理者権限が必須であり、管理者権限の無いコマンドプロンプトから実行すると無言で落ちるので注意。

msiexec /i TortoiseSVN.msi ADDLOCAL=MoreIcons,CLI /qn
winget install -e TortoiseSVN.TortoiseSVN --override "ADDLOCAL=MoreIcons,CLI /qn"