Microsoft の GitHub から Windows Terminal のプレリリース版を入手すると、インストーラとして .msixbundle
形式のファイルが提供されていることがわかります。この見慣れない1 拡張子はいったい何者なのでしょうか?
MSIX パッケージ
前段として、MSIX パッケージに触れなければなりません。MSIX パッケージは Windows 10 v1809 から利用可能になった新しいインストーラ形式です。2
以下にMicrosoft公式の説明を引用します:
あらゆる Windows アプリに最新のパッケージ化エクスペリエンスを提供する Windows アプリ パッケージ形式です。 MSIX パッケージ形式では、Win32、WPF、および WinForm の各アプリに対して新たな、最新のパッケージ化および展開機能が有効になるだけでなく、既存のアプリ パッケージとインストール ファイルの機能が維持されます。 3
具体的には、MSIX Packaging Tool を利用することで、 従来型の各種インストーラ( .msi
形式だけではなく、任意の実行形式ファイルやインストール用バッチファイルも含みます) を MSIX パッケージとして出力することができます。
MSIX パッケージは WEB 等を通じて自由に配布を行うことができるほか、Microsoft Store での配布が可能となります。適当な自家製インストールバッチにも電子署名を追加できたり、良い感じの GUI を付け加えたりできたりするのは嬉しいですね。1
MSIX パッケージのバンドル
.msixbundle
は複数アーキテクチャ向けの MSIX パッケージを一つのファイルにバンドルしたものです。4
Windows 10 は複数のアーキテクチャ( x86、 x64 そして ARM )上で動作します。各アーキテクチャ向けのインストーラは別々の MSIX パッケージを用意しなければなりませんが、それらを MSIX パッケージバンドルにまとめることができます。.msixbundle
の作成には Windows 10 SDK の MakeAppx.exe
を利用します。
.msixbundle
ファイルの実態は Zip 形式のアーカイブであり、Zip ファイルとして取り扱うことでファイルの抽出を行うことができます。5
Windows Terminal の場合、3 アーキテクチャ向けの MSIX パッケージが 1 つの .msixbundle
ファイルにバンドルされていたことがわかります。.msixbundle
ファイルをダブルクリックして実行すると、環境に応じた .msix
ファイルが呼び出されます。Microsoft Store に登録するファイルの数を減らすことができるほか、WEB 上の配布についても、ユーザにアーキテクチャの違いを意識させないで済むメリットがあります。