メイン >> 5. [Files] セクションでの記述

基本的な記述について

[Files] セクションでは、インストールするファイルについての記述を行います。

btn.gif 書式

Source: [ファイル] ; DistDir: [インストール先] ; [オプション]

btn.gif Source で記述する内容について

インストーラをビルドするときに、ソースとなるファイルのパスを指定します。特定ディレクトリ以下のファイルを全て含めたい場合は、ワイルドカード(*) を使います。
例)
Source: "c:\files\*"

また、[Setup] セクションで、ソースディレクトリを指定することもできます。
以下の記述がある場合には、Source: で指定するファイルは、絶対パス指定を行わない限り、SourceDir で指定したディレクトリ以下と見なされます。

[Setup]
SourceDir=c:\files

btn.gif DistDir で記述する内容について

インストール時に、ファイルをコピーする先のディレクトリを指定します。
「インストール先の指定」ウィザードページを使用している場合には、定数 {app} で、インストールディレクトリを記述することができます。

例)
Source: file.txt ; DistDir: {app}

上記の例の場合には、「インストール先の指定」ウィザードページで指定されたディレクトリ下に、file.txt がインストールされます。

Inno Setup で使用できる定数については、 ヘルプ:「使い方」-「定数」を参照してください。

投稿者 yamadas : 2006年08月16日 12:00 固定リンク

インストール時にパーミッションを変更する

Permissions オプションを使用することで
インストール時にパーミッションを変更することができます。

ディレクトリに対してパーミッションを変更したい場合には、
[Dirs] セクションに記述します。

パーミッション設定は、「対象ユーザー/グループ」-「操作」の形で
指定します。

「対象グループ/ユーザー」に記述できるのは以下になります。
Inno Setup での記述 Windowsでのグループ
admins Administrators ( 管理者グループ )
authusers Authenticated Users
everyone Everyone ( 全員 )
powerusers Power Users
system SYSTEM
users Users ( 一般ユーザー )

「操作」に記述できるのは以下になります。
Inno Setup での記述 操作できる内容
full modify でできることに加えて、パーミッションの変更を行うことができる。
modify 読み込み / 変更 / 実行 / 削除 を行うことができる。
readexec 読み込み / 実行 を行うことができる。

btn.gif 記述例

・管理者グループのみ全ての操作を行うことができるようにする
  Source:file.txt; DistDir:{app};permissions:admins-full

・全員がパーミッション変更以外の操作を行うことができるようにする
  Source:file.txt; DistDir:{app};permissions:everyone-modify

・一般ユーザーが、読み込み/実行 のみ行えるようにする
  Source:file.txt; DistDir:{app};permissions:users-readexec

・全員が全ての操作を行えるディレクトリ名「db」を作成する
 [Dirs]
  Name: {app}\db;Permissions: everyone-full 

投稿者 yamadas : 2006年08月16日 11:00 固定リンク

インストール終了時に表示するファイルを指定する

インストール終了後に Readme 等の表示したいファイルがある場合には
「Flags: isreadme」オプションを使用することで、
インストール終了ウィザードページから Readme ファイル表示を行うことができます。

btn.gif 記述例

[Files]
Source: "MyProg.hlp"; DestDir: "{app}"; Flags: isreadme

  インストール終了ウィザードページで表示確認UI を表示する。
readme.gif

投稿者 yamadas : 2006年08月16日 10:00 固定リンク

インストール処理実行の条件を設定する

「あるファイルが存在している場合にはインストールしない」等の
条件によってインストール処理を行うかを指定したい場合には
Check パラメータを使用します。
Check パラメータは、[Files] セクション以外でも使用することができます。

btn.gif 書式

Check : 関数名

サポート関数以外の関数を指定する場合には、
[Code] セクションで関数を定義します。

btn.gif 記述例: 既に存在している場合には、インストールしない

[Files]
Source: file.txt; DestDir: {app}; Check: isFileExist

[Code]
function isFileExist():Boolean;
begin
 Result := FileExists( ExpandConstant('{app}\file.txt') );
end;

btn.gif 記述例: インストール先に「db」ディレクトリが存在しなければ作成する

[Dirs]
Name: {app}\db; Check:isDbDirExist

[Code]
function isDbDirExist():Boolean;
begin
 Result := DirExists( ExpandConstant('{app}\db') );
end;


Check パラメータについての詳細は、ヘルプ:「パスカル・スクリプト」-「Check パラメータ」
参照してください。

投稿者 yamadas : 2006年08月16日 09:00 固定リンク

インストール中に実行するファイルを用意する

インストーラ実行中に他のインストーラを実行する、といった
アーカイブ内に用意したファイルを実行する場合には、以下の記述を行います。

1. [Files] セクションで、実行ファイルを Flag: dontcopy オプションを付けて記述して、アーカイブ内に含める。
2. [Code] セクションで、実行したいファイルを一時ディレクトリに置く
3. [Code] セクションで、「2.」のファイルを実行する

btn.gif 記述例: インストーラ内で、PHP のインストーラ(php-installer.exe)を実行する。

[Files]
Source: php-installer.exe; Flags: dontcopy

[Code]
// 一時ディレクトリに置く
ExtractTemporaryFile( 'php-installer.exe' );
// インストーラを実行する
Exec(ExpandConstant('{tmp}\')+'php-installer.exe' , '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);

※ 実行結果を受ける変数として ResultCode を定義しておく必要があります。

投稿者 yamadas : 2006年08月16日 08:00 固定リンク