LoginSignup
3
2

More than 3 years have passed since last update.

[メモ] MSIXを使って .NET Core アプリのインストーラを作る

Posted at

はじめに

Windowsアプリ用のインストーラを作ってみたいと思ったので調べました。
インストーラの形式はMSIXにしました。理由は以下の通り。

環境

MSIX形式のインストーラはWindows 10以外のOSでは多分作れない

> Get-WmiObject Win32_OperatingSystem

SystemDirectory : C:\Windows\system32
Organization    :
BuildNumber     : 18363
RegisteredUser  : Windows ユーザー
SerialNumber    : 
Version         : 10.0.18363

> dotnet --version
3.1.401

Pro使っていますが、Community版でも問題無いはず
image.png

インストールするアプリを作る

WPFアプリをデフォルトの設定のまま作成する
WPFアプリを選んだ理由は特にない。コンソールアプリなど その他の形式でも問題ない

image.png

image.png

インストーラ用のプロジェクトを作る

先ほど作ったWPFアプリのソリューションに新しいプロジェクトを追加する
「Windows アプリケーション パッケージプロジェクト」を選ぶ
image.png

「作成」をクリック
image.png

ターゲットバージョンの値はインストール先のOSのバージョン以上の値を選ぶ
image.png

Windows 10 SDKをインストールしていないと、選択したいバージョンが表示されない
Windows 10 SDKはVisual Studio Installerからインストールできる
image.png

インストーラ用のプロジェクトが追加される
image.png

インストーラを作る

アプリケーション > 参照の追加(R)を選択
image.png

WPFアプリを選ぶ
image.png

選んだアプリが追加されていればOK
image.png

インストーラプロジェクトを右クリック > 公開 > アプリパッケージの作成
image.png

サイドローディング」をチェックした状態で「次へ」をクリック
image.png

アプリに署名をするか聞かれる。今回はテスト証明書を使用してみる
「はい、証明書を選択します」> 「作成(C)」を選択したあと「発行者共通名」と「パスワード」を適当に入力して「OK」をクリック
image.png

テスト証明書の準備はこれで終わり。「次へ」をクリック
image.png

出力場所とインストール先のアーキテクチャを選択する (WPFアプリのターゲットプラットフォームと揃える)
※自分の環境だとx64は使えなかった。(ビルドエラーになる) 検証に使っているマシンのcpuがRyzenであることが影響しているように見えるがよくわからない...
image.png

「インストーラーの場所」に先ほどの出力場所と同じ値を入力し「作成」
image.png

ビルドが通るとパッケージの情報が表示される。インストーラの作成はこれで終わり
image.png

実際にインストールしてみる

インストーラーの場所を開くとフォルダ1つとファイル2が出力されている
index.htmlをブラウザで開く
image.png

インストールを実行する前に証明書の登録と、インストール先のマシンでサイドローディングをできるようにする
「公開者証明書」リンクをクリック
image.png

ダウンロードした証明書をインストールする
image.png

「保存場所」を「ローカルコンピューター」に変更し「次へ」
image.png

「証明書をすべて次のストアに配置する」> 「信頼されたルート証明機関」>「OK」
image.png

image.png

開発者モードを有効にする
image.png

インストールの準備は以上。「アプリを取得する」をクリック
image.png

「インストール」をクリック
image.png

インストールが完了するとアプリが起動する
image.png

参考

.NET Coreに対応したInputManで次世代のアプリ配布方法を試す(MSIX編)
インストーラーを理解する
Troubleshoot installation issues with the App Installer file

3
2
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
3
2