DOBON.NET DOBON.NETプログラミング掲示板過去ログ

カスタムアクションとは?

環境/言語:[InstallShield 2008]
分類:[インストーラ]

いつも御世話になっております。

InstallShieldでインストーラを作っているのですが、ちょっと疑問が生じまして。

InstallScriptで困難な処理(具体的にはプロセスチェック処理)を以下の方法で行っています。
・ネイティブDLLを作成してそこに処理を実装。
・このDLLファイルをInstallShieldのサポートファイルとして登録。
・InstallScriptからUseDLLを使ってロードし、関数を呼び出す。

InstallShieldのヘルプでUseDLLを調べると、上記方法が記載されてます。
これはカスタムアクションとは異なるものなのでしょうか?
もちろん、カスタムアクションに登録するやり方もあるようですが、
違いがよく分りません。
ご存知のかたいらっしゃいましたら、ご教授のほどお願いしたいのですが。。
■No22509に返信(Esmoriさんの記事)

> InstallShieldでインストーラを作っているのですが、ちょっと疑問が生じまして。
>
> InstallScriptで困難な処理(具体的にはプロセスチェック処理)を以下の方法で行っています。
> ・ネイティブDLLを作成してそこに処理を実装。
> ・このDLLファイルをInstallShieldのサポートファイルとして登録。
> ・InstallScriptからUseDLLを使ってロードし、関数を呼び出す。
>
> InstallShieldのヘルプでUseDLLを調べると、上記方法が記載されてます。
> これはカスタムアクションとは異なるものなのでしょうか?
> もちろん、カスタムアクションに登録するやり方もあるようですが、
> 違いがよく分りません。
> ご存知のかたいらっしゃいましたら、ご教授のほどお願いしたいのですが。。

これも一種のカスタムアクションです。

どういう記述形式のコードを呼び出すか?で名称が変わるのではなく、
Windows Installer の標準にはない処理コードを書いてそれを呼び出す
という作業すべてがカスタムアクションとなります。
#ISの場合は、MSI(基本か否かにかかわらず)で作っている場合のみ該当

NativeDLLに、InstallScript で行っている作業も盛り込めるのであれば
余計なオーバーヘッドが入らない Windows Installer DLL 形式の
カスタムアクションを利用することをお勧めしますが、
よくわからないのであれば、今の形のままでもよいと思いますよ。

あと、InstallShield の質問をする際には、プロジェクト形式を
書いておく方が回答を得やすいと思います。

DOBON.NET | プログラミング道 | プログラミング掲示板