|
本サイトは移転しました。旧アドレスからのリダイレクトは2025年03月31日(月)まで有効です。
|
🛈 | ✖ |
インストーラ作成ツールとして導入されるInno Setupを説明する。
ウィンドウズデスクトップアプリケーションDesktop1のインストーラを作成するとして通常の手順を説明する。
スクリプトファイルは任意のテキストエディタでも編集できるし、コマンドラインツール(ISCC.exe)でコンパイルもできる。
本サイトの用いるスクリプトファイルを示す。
このスクリプトファイルでカスタマイズが必要なプリプロセッサ変数を示す。最も重要な変数は[Setup]セクションAppIdディレクティブに代入されるMyAppIdで、ウィンドウズはこれでインストールされているアプリケーションを識別するため、全ての稼働環境でユニークである事が要求される。最も確実にはInno Setup Compilerで[Tools|Generate GUID]を実行しGUID文字列を生成するが、スクリプト記述において{app}などの定数と区別するため開き波括弧"{"を二重とする必要がある。あなたは最低でもこのMyAppIdを書き換える必要があるが、他の変数も真のアプリケーション名やあなたの名前で書き換えるはずだ。
| 変数 | 内容 | 初期値 | 備考 |
|---|---|---|---|
| MyAppId | アプリケーション識別子 | "{{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" | ユニークな文字列 |
| MyAppName | アプリケーション名 | "Desktop1" | |
| MyAppVersion | アプリケーションバージョン | "0.0.0.0" | |
| MyAppPublisher | アプリケーション発行元 | "KodamaDeveloped" | |
| MyAppURL | アプリケーションウェブページ | "http://www.example.com/" | 今のところコメントアウト |
| MyAppExeName | アプリケーション実行形式名 | MyAppName+".exe" | |
| MyAppCopyright | アプリケーション著作権 | "(C) 2019 Takeshi Kodama" |
このスクリプトファイルはインストール対象ファイルが正しく配置されている事を前提に、32ビット/64ビット実行形式ファイルの有無により以下いずれかのインストーラを作成する。どちらの実行形式ファイルもない場合はインストーラ作成に失敗する。
| インストーラ | 32ビット | 64ビット | ターゲットアーキテクチャ | インストール |
|---|---|---|---|---|
| 32ビット/64ビット両対応 | 有 | 有 | 64ビット(x64) | 64ビット実行形式 |
| x64以外 | 32ビット実行形式 | |||
| 32ビット専用 | 有 | 無 | 64ビット(x64) | 32ビット実行形式 |
| x64以外 | 32ビット実行形式 | |||
| 64ビット専用 | 無 | 有 | 64ビット(x64) | 64ビット実行形式 |
| x64以外 | 失敗 |
その他のカスタマイズは対応セクションで定義される。
| セクション | カスタマイズ | 初期値 |
|---|---|---|
| [Icons] | スタートメニュー登録 | MyAppPublisherグループに登録 |
| [Run] | インストール直後の実行アプリケーション | MyAppExeNameを実行 |
| [Registry] | レジストリ作成 | HKEY_LOCAL_MACHINEに空キーを作成 |
アプリケーションが保存するであろうレジストリデータをアンインストール時に自動削除するためレジストリ空キーを作成する。RootパラメータHKAはインストール権限に依存してHKLM(HKEY_LOCAL_MACHINE)あるいはHKCU(HKEY_CURRENT_USER)に切り替えられるが、デフォルトはアドミニストレータ権限なのでHKLMとなる。アドミニストレータ権限インストールでアンインストール時にHKCUを自動削除するにはRootパラメータをHKCUとするが、複数アカウントを持つパソコンで問題となる場合があり推奨されない。
以下にスクリプトファイルからコマンドラインツールによりインストーラを生成するバッチファイルを示す。
開発時にインストール対象ファイル(実行形式ファイル、HTMLヘルプファイル、バイナリ形式翻訳ファイル)は以下に配置されているものとする。Inno Setup実行バッチファイルによりインストーラDesktop1-0.0.0.0.exeが作成される。
| ディレクトリ | ファイル | 内容 |
|---|---|---|
| [プロジェクトディレクトリ] | Desktop1.cbp | Code::Blocksプロジェクト |
| │ | *.cpp, *.h | ソースコード、インクルード |
| │ | resource.rc | ウィンドウズリソース |
| ├ bin | Desktop1.chm | HTMLヘルプ |
| │├ Debug32 | Desktop1.exe | 32ビット実行形式デバッグ版 |
| │├ Release32 | Desktop1.exe | 32ビット実行形式リリース版 |
| │├ Debug64 | Desktop1.exe | 64ビット実行形式デバッグ版 |
| │├ Release64 | Desktop1.exe | 64ビット実行形式リリース版 |
| │└ ja | Desktop1.mo | 日本語バイナリ形式翻訳 |
| ├ obj | ||
| │├ Debug32 | *.o | 32ビットオブジェクトデバッグ版 |
| │├ Release32 | *.o | 32ビットオブジェクトリリース版 |
| │├ Debug64 | *.o | 64ビットオブジェクトデバッグ版 |
| │└ Release64 | *.o | 64ビットオブジェクトリリース版 |
| ├ wxsmith | *.wxs | wxSmithリソース |
| └ innosetup | InnoSetup.iss | Inno Setupスクリプト |
| Desktop1-0.0.0.0.exe | インストーラ | |
| k_innosetup.bat | Inno Setup実行バッチ |
配布時にインストーラは以下に配置する。
| ディレクトリ | ファイル | 内容 |
|---|---|---|
| [インストールディレクトリ] | Desktop1.exe | 実行形式 |
| │ | Desktop1.chm | HTMLヘルプ |
| └ ja | Desktop1.mo | 日本語バイナリ形式翻訳 |