古い installshield アプリケーションをリファクタリングしていて、カスタム dll から関数を呼び出すアクションを実行する必要があります。残念ながら、このアクションが実行する機能は、別のカスタム dll に依存しています。したがって、私の質問は次のとおりです。
インストーラーを実行しようとすると、「セットアップが完了する前に中断されました...」というエラーが表示されてクラッシュします。次に、2 番目のカスタム dll を PATH に追加したフォルダーにコピーしたところ、すべてうまくいきました。もちろん、顧客が手作業でそれを行うことは期待できません。
私は Installshield 2008 を使用していますが、私の質問に対する答えはすべてのバージョンで同じになると思います。
編集:おそらく私の質問は十分に明確ではないので、例を挙げます:関数を持つ.dllがあるとしましょう:
UINT __stdcall
PerformAction(MSIHANDLE hInstall) // IN
{
...
help();
...
}
help() は b.dll で定義されています。ここで、新しいアクションを作成するときに、その dll を a.dll に設定し、関数名を PerformAction に設定しますが、これが b.dll に依存していることを示す方法はありません。インストーラーの PATH に含まれるフォルダーに b.dll をコピーすると、正常に動作しますが、そうしないと失敗します。