6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

.msixbundle ってなんだ?

Last updated at Posted at 2019-12-15

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

msixbundled.png

Windows Terminal の場合、3 アーキテクチャ向けの MSIX パッケージが 1 つの .msixbundle ファイルにバンドルされていたことがわかります。.msixbundle ファイルをダブルクリックして実行すると、環境に応じた .msix ファイルが呼び出されます。Microsoft Store に登録するファイルの数を減らすことができるほか、WEB 上の配布についても、ユーザにアーキテクチャの違いを意識させないで済むメリットがあります。

参考リンク

  1. 主観です 2

  2. v1709 および v1803でもサポートされていますが、ダブルクリックからのインストールができない等の制約があります。また、.msixbundle 形式がサポートされていません。

  3. https://docs.microsoft.com/ja-jp/windows/msix/overview

  4. 見た目からも明らかではありますが。

  5. ただし暗号化が行われている場合、この限りではありません。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?