先日公開した記事では、.NET Coreで作成したWindowsアプリケーションの新しい配布方法「自己完結型」を試してみました。
今回は前回紹介できなかったMSIXパッケージを作成してアプリケーションを配布する方法を試してみたいと思います。
前回に引き続き、使用するのは入力支援コンポーネント「InputManPlus for WPF(インプットマンプラス)」です。
配布するアプリケーションの準備
InputManとJPAddressで作成した郵便番号検索アプリを使用します。事前準備として、あらかじめInputManとJPAddressの製品版かトライアル版のインストールを行ってください。
作成方法は以前公開した記事を参照いただくか、GitHubでも公開しているのでそちらをご覧ください。
今回はMSIXパッケージに辞書ファイルを含めて配布を行うため、辞書ファイルをプロジェクトに追加します。プロジェクトを右クリックして、「追加」⇒「既存の項目」から、以下の4つのファイルを追加します。
※ これらは、JPAddressのインストールフォルダ配下のDataフォルダにあるzip形式の圧縮ファイル(JPAddressDB.zip)に含まれています。
- KEN_ALL.dat
- JIGYOUSHO.dat
- shigai_list.dat
- JPAddressDBTimeStamp.dat
さらに、プロパティウインドウから、これら4つの辞書ファイルの「ビルドアクション」を「コンテンツ」に設定します。
MSIXパッケージで配布する
MSIXパッケージの作成
MSIXはWindows 10で導入されたWindows アプリケーションのパッケージ形式で、管理者権限なしでインストール出来たり、自動更新に対応している、といった特長があります。
特に「自動更新に対応」というところがポイントで、.NET Coreで作成したアプリケーションはClickOnceによる配布に対応していないので、MSIXはClickOnceの後継テクノロジーとして期待を集めています。
なお、MSIXを作成するにはUWPの開発環境が必要です。開発環境をインストールしていない場合は、Visual Studioのメニューから「ツール」⇒「ツールと機能を取得」をクリックし、「ユニバーサル Windows プラットフォーム開発」のワークロードをインストールしてください。
それでは早速MSIXパッケージを作成していきたいと思います。住所検索アプリが含まれるソリューションを右クリックし、「追加」⇒「新しいプロジェクト」のメニューを選択し、「Windows アプリケーション パッケージ プロジェクト」を追加します。
追加するとサポートするWindows 10のバージョンを指定するダイアログが表示されるので、実行する環境にあわせて設定します(設定はあとからでも変更できます)。
完了したら、ソリューションエクスプローラから「アプリケーション」を右クリック⇒「参照の追加」を選択し、パッケージするアプリケーションを設定します。
次に、パッケージプロジェクトを右クリック⇒「公開」⇒「アプリ パッケージの作成」をクリックします。
「アプリパッケージの作成」ダイアログが開くので、「サイドローディング」を選択し、「自動更新を有効にする」にチェックを入れ、「次へ」をクリックします。
「署名方法の選択」画面になるので、証明書を設定します。今回はテスト用に適当に新しく作成して設定します。
「パッケージの選択と構成」画面では、出力場所やバージョンの設定などができます。アプリケーションにあわせてターゲットプラットフォームなどを修正します。
「更新設定の構成」画面でインストーラーの場所を設定します。今回は前の画面で設定した出力場所と同じパスを設定します。また、更新プログラムの確認は、アプリケーションが実行されたとき都度行うようにします。
「作成」をクリックすると、パッケージの作成が開始され、完了すると以下のダイアログが表示されます。
インストーラーの出力先のフォルダに移動すると、以下のようにファイルが出力されます。
インストーラーファイルの設定
出力されたMSIXProject.appinstaller
ファイルをテキストエディタなどで開き、更新の設定を変更します。今回はアプリケーションに更新があった場合に更新確認のダイアログが表示されるよう、UpdateSettings
のOnLaunch
にShowPrompt
の属性を追加し、これを有効にするためにxmlnsを2018
に更新します。
<?xml version="1.0" encoding="utf-8"?> <AppInstaller Uri="・・・" Version="1.0.1.0" xmlns="http://schemas.microsoft.com/appx/appinstaller/2018"> ・・・ (省略) ・・・ <UpdateSettings> <OnLaunch HoursBetweenUpdateChecks="0" ShowPrompt="true"/> </UpdateSettings> </AppInstaller>
アプリケーションのインストール
インストーラの設定が完了したら、出力されたindex.html
をブラウザで開きます。以下のような画面が表示されるので、「アプリを取得する」からアプリケーションをインストールします。
※ 事前に以下のリンクから証明書を取得し、インストールする環境の「ローカルマシン」の「信頼されたルート証明機関」に対して証明書のインポートを行ってください。
ダイアログに従い、インストールを進めます。完了すると、以下のように郵便番号検索アプリが起動します。
アプリケーションの更新
次にアプリケーションの更新を行ってみます。Visual Studioで先ほどのソリューションを開き、MainWindow.xaml
から、WindowのBackground
プロパティをLightPink
に変更します。
先ほどと同様の手順でパッケージの作成を行います。バージョンは自動的にインクリメントされます。
スタートメニューなどから先ほどインストールしたアプリケーションを起動すると、以下のような更新確認のダイアログが表示されます。
「更新する」をクリックするとインストールが始まり、背景色が変更されたアプリケーションが起動します。
おわりに
如何でしたでしょうか。MSIXはWindows 10の環境でないと使用できない、という最大の課題がありますが、Windows 7のサポートも終了し、Windows 10への移行もどんどん進んでいる頃かと思いますので、このようなモダンな配布方法を検討してみても良い時期ではないでしょうか。
また、MSIXのインストーラーは他にも細かな設定がいくつも用意されているので、詳しくはマイクロソフト社のリファレンスをご覧ください。