.NET Coreに対応したInputManで次世代のアプリ配布方法を試す(MSIX編)

先日公開した記事では、.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 プラットフォーム開発」のワークロードをインストールしてください。

UWP開発環境のインストール

それでは早速MSIXパッケージを作成していきたいと思います。住所検索アプリが含まれるソリューションを右クリックし、「追加」⇒「新しいプロジェクト」のメニューを選択し、「Windows アプリケーション パッケージ プロジェクト」を追加します。

Windows アプリケーション パッケージ プロジェクトの追加

追加するとサポートするWindows 10のバージョンを指定するダイアログが表示されるので、実行する環境にあわせて設定します(設定はあとからでも変更できます)。

プラットフォームの設定

完了したら、ソリューションエクスプローラから「アプリケーション」を右クリック⇒「参照の追加」を選択し、パッケージするアプリケーションを設定します。

アプリケーションを右クリック

参照の追加

次に、パッケージプロジェクトを右クリック⇒「公開」⇒「アプリ パッケージの作成」をクリックします。

「アプリパッケージの作成」ダイアログが開くので、「サイドローディング」を選択し、「自動更新を有効にする」にチェックを入れ、「次へ」をクリックします。

配布方法の選択

「署名方法の選択」画面になるので、証明書を設定します。今回はテスト用に適当に新しく作成して設定します。

署名方法の選択

「パッケージの選択と構成」画面では、出力場所やバージョンの設定などができます。アプリケーションにあわせてターゲットプラットフォームなどを修正します。

パッケージの選択と構成

「更新設定の構成」画面でインストーラーの場所を設定します。今回は前の画面で設定した出力場所と同じパスを設定します。また、更新プログラムの確認は、アプリケーションが実行されたとき都度行うようにします。

更新設定の構成

「作成」をクリックすると、パッケージの作成が開始され、完了すると以下のダイアログが表示されます。

パッケージ作成完了

インストーラーの出力先のフォルダに移動すると、以下のようにファイルが出力されます。

インストーラーの出力先

インストーラーファイルの設定

出力されたMSIXProject.appinstallerファイルをテキストエディタなどで開き、更新の設定を変更します。今回はアプリケーションに更新があった場合に更新確認のダイアログが表示されるよう、UpdateSettingsOnLaunchShowPromptの属性を追加し、これを有効にするために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のインストーラーは他にも細かな設定がいくつも用意されているので、詳しくはマイクロソフト社のリファレンスをご覧ください。

\  この記事をシェアする  /