Qtで作ったアプリケーションを配布するためのインストーラを作ろう


Qtで作ったアプリケーションを配布するためのインストーラを作ろう

直近でQtを使った業務が行われるのだが、それをお客さんに配布するのだが、あまりパソコン操作が得意じゃないお客さんなので親切心からインストーラを作ることにした

使用環境

  • Windows 11
  • Qt6
  • Inno Setup: 6.2.0

事前準備のため必要ツールをインストール

# Inno Setupをインストールする
> winget install JRSoftware.InnoSetup

手順

Qtを使ったアプリを作成する

とりあえずアプリがないと始まらないので以下のようなアプリを作ってみる

※ 久しぶりに触ってみたら開発環境がQtCreatorとQt Design Studioに増えてたので次回触ってみよう

ここまでで以下のようなフォルダ構成になっているとします

Test/
├───build
│   └───Release
│       └ Test.exe # 今回作成したアプリケーションの実行ファイル

依存関係DLLを配布用に集める

Qtには配布をするために実行ファイルに依存しているDLLを調べて、直下にコピーしてくれるコマンドがある。
それを利用させてもらう。

> cd .\Test
> windeployqt --dir .\dist .\build\Release\Test.exe

コマンドを実行したことで'\dist'フォルダにQt6Core.dllなどの依存していたDLLがコピーされている。
この段階で以下のようなフォルダ構成になる

Test/
├───build
│   └───Release
│       └ Test.exe # 今回作成したアプリケーションの実行ファイル
└───dist # 依存するファイルがここに準備される

インストーラを作成する

ここからはInno Setupを使用する

Inno Setupを起動するとInno Setup Script Wizardが起動します。新規でインストーラを作る場合に起動するようです。

ここは気にせずNextボタンを押しましょう

アプリケーションの情報を記入します。Application nameApplication version以外は空欄でも動きます。

インストーラでアプリケーションをインストールした際に、インストールフォルダの名前をどうするか入力します。

今回、配布するアプリケーションの実行ファイル.exeを選択し、Other application filesにはAdd folderボタンから先ほど作成したdistフォルダを追加する。

distフォルダを追加する際、サブディレクトリを検索するか聞かれるので必ずYesと答えましょう。

あとは適当にNextボタンを押していればインストーラが完成します。