7

私は WIX インストーラーを作成していますが、次の要件があります。
インストール中に、インストーラーに含まれるファイル (A と呼びましょう) への絶対パスを、ハード ドライブ上に既に存在している COM コンポーネントに渡す必要があります。別のプログラムの一部。ファイル A へのパスを想定する適切なカスタム アクションを既に作成しました。Program Files フォルダーにインストールされ、アンインストール プロセス中に削除されるファイルとして A を含めたくありません。代わりに、A を一時的にハード ドライブに置き、カスタム アクションを呼び出して COM コンポーネントに A のコンテンツを使用させ、ディスクから A を削除したいと考えています。この目標を達成する簡単な方法はありますか?

Binary Table を利用してそこに A を格納しようとしましたが、絶対パスを使用して A を参照する方法がわかりません。A を MSI ファイルの外に置くことができることはわかっていますが、すべてのファイル インストーラーのニーズを単一の MSI に保持したいと考えています。

どんな助けでも大歓迎です。

4

2 に答える 2

8

MSI がインストールしたファイルを削除すると、MSI はそのファイルを「壊れている」と見なし、必要に応じて自動修復を試みます。これはいくつかの場合 (宣伝されたショートカットや COM 登録など) で自動的に行われるため、お勧めしません。代わりにファイルをそこに残してください。ファイルはその役割を果たしているので、そこに残しても害はありません。

于 2010-04-13T18:28:20.133 に答える
7

私はこのアプローチを取ります。

ファイル「A」を任意のディレクトリにインストールします。COMコンポーネントを更新するために必要なカスタムアクションを実行します。次に、別のカスタムアクションを実行するか、現在書き込まれているアクションを変更して、使用されなくなったファイルを削除します。これにより、ファイル「A」の痕跡は残りません。カスタムアクションをインストール中にのみ実行するようにスケジュールした場合、アンインストール時にそれについて心配する必要はありません。

于 2010-04-12T19:31:32.113 に答える