お世話になります。
Visual Studio 2005の「セットアッププロジェクト」を使ってインストーラを作成しています。
<要件>
- インストール・アンインストール時にA.exeを実行します。
- A.exeはB.dll内の関数を呼びます。
- A.exe、B.dllはインストール先へ配置しません。
- A.exeはMFCアプリケーションプロジェクト、B.dllはMFC DLLプロジェクトで作成しています。
このとき、A.exe及びB.dllをどのように設定すればよろしいでしょうか?
- アプリケーションフォルダにA.exe、B.dllを追加し、共に「Exclude」プロパティを「True」に
- カスタム動作の「確定」及び「アンインストール」にA.exeを追加
としてみたところ、できあがったインストーラを実行するとカスタム動作の実行フェイズで
「このWindowsインストーラパッケージには問題があります。」
とメッセージが出てインストール処理がロールバックされます。
B.dllがA.exeの実行時に存在していないようでした。
インストーラからではなく直接A.exeを実行した場合には何も問題はありません。
インストーラからでもB.dll内の関数を呼ばなければ問題ありません。
インストールログ(抜粋):
エラー 1722。 この Windows インストーラ パッケージには問題があります。セットアップの一部として実行されるプログラムは正しく完了しませんでした。サポート担当者またはパッケージのベンダに問い合わせてください。 操作 _F42839C0_D41C_476B_94DD_EC94B17FD1F5, 場所: C:\WINDOWS\Installer\MSIC2.tmp, コマンド: /install
MSI (s) (EC:40) [10:34:34:956]: 製品: TestApp -- エラー 1722。 この Windows インストーラ パッケージには問題があります。セットアップの一部として実行されるプログラムは正しく完了しませんでした。サポート担当者またはパッケージのベンダに問い合わせてください。 操作 _F42839C0_D41C_476B_94DD_EC94B17FD1F5, 場所: C:\WINDOWS\Installer\MSIC2.tmp, コマンド: /install