2017年5月26日金曜日

Inno Setup Compiler 5.5.9 (u)

Windows向けインストーラ作成プログラムの中の一つ、Inno Setup Compilerについて簡単に使い方を説明する。

Free Softwareで、GitHubでソースコードも公開されている。このソースコードそのもののライセンス形態はかなり緩い。変更しても公開する必要に関して言及されていないので、たぶんそのまま持って商用にも使える。ただ、著作権表示に関しては厳密にせよということが書かれている。http://www.jrsoftware.org/

インストール

平成29年5月現在、このソフトのオリジナルサイトからのバイナリは2種類、Unicode対応と非対応のものだ。Inno Setup Helpにある記述によると、Inno Setup 5.3.0からこの形態になった。
これらの内、必要なものをダウンロードする。この時、両方とも欲しいような場合、別なフォルダーにインストールすれば良いらしい。

使い方

平成29年5月現在、バージョン5.5.9において、拡張子 .iss を持つテキストベースのスクリプトファイルに全ての情報を書き込み、Inno Setup Compilerでインストーラを作成する、という流れとなっている。

Inno Setup Compilerを立ち上げ、WelcomeウィンドウのNew fileでCreate a new script file using the Script Wizardを選択すると、簡単に自分用の雛形を作ることが出来る。
単にアプリケーションをインストールするだけならばこれでインストーラを作成できる。

ここで、Wizardのほぼデフォルトの設定で作成されたスクリプトを以下に示す。

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{xxxxxxxxxxxxxxxxxxxxx}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Program Files (x86)\Inno Setup 5\Examples\Readme.txt"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

64bitアプリ用の修正

このままでも所定のアプリ、'''MyProg.exe'''をシステムの指定のディレクトリにインストールされる。ただ、x64になってから、デフォルトでは、
 C:\Program Files (x86)
にインストールされてしまう。64bitアプリケーションならば、
 C:\Program Files
にインストールされるべきである。64bitアプリだけインストールしたいのならば、
 DefaultDirName={pf}\{#MyAppName}
の{pf}を{pf64}に変更すれば良い。

Redistributable Packages

古い開発環境で開発されたアプリを最新のOSでの動作をさせようとすると、マイクロソフトがそれように提供している追加のパッケージをインストールしないとランタイム時にエラーを起こしてしまう。そのため、ユーザのためには、予めインストーラで提供できれば良い。そのためには、ディレクティブ、[Files]でそのファイルをどこに出力するかを指定し、[Run]ディレクティブで実行させれば良い。

そのためには、まず、
[Files]
Source: "C:\Users\foo\vcredist_x64.exe"; DestDir: {tmp}; Flags: deleteafterinstall

で{tmp}ディレクトリにvcredist_x64.exeをコピーするように指定する。ちなみにFlagsで処理後には消去指定してある。
そして、
[Run]
Filename: {tmp}\vcredist_x64.exe; Parameters: "/q /norestart"; \
  StatusMsg: "Installing VC++ 2013 Redistributables..."
で実行させることを指定する。

日本語などのメッセージは既にInno Setup 5のディレクトリ内に、Languagesというディレクトリ内部に各言語の.islファイルとして用意されている。これを用いるには、スクリプトの中で、
[Setup]
...
[Languages]
Name: japanese; MessagesFile: compiler:Languages\Japanese.isl

という[Languages]というsectionに追加する。するとインストーラのメッセージを日本語にする事が出来る。

4 件のコメント:

  1. I guess I am the only one who came here to share my very own experience. Guess what!? I am using my laptop for almost the past 6 years, but I had no idea of solving some basic issues. I do not know how to Download Cracked Pro Softwares But thankfully, I recently visited a website named PCexe.org
    All Pro Cracked Softwares Download
    Inno Setup Compiler Crack

    返信削除
  2. I like your all post. You have done really good work. Thank you for the information you provide, it helped me a lot. crackdoc.org I hope to have many more entries or so from you.
    Very interesting blog.
    easeus-video-editor
    inno-setup-compiler-crack
    ultraedit-crack
    auslogics-registry-cleaner-pro

    返信削除
  3. Hello! Nice to meet you, I say . The name of the community I run is Hashmi Technology, and the community I run contains articles similar to your blog. If you have time, I would be very grateful if you visit my site .
    inno setup compiler crack

    返信削除