0

vS2008で定義されているMSIプロジェクトの一部としていくつかのカスタムアクションがあります。

アクションは短いJavascriptとして定義されています。インストール時に実行される2つと、アンインストール時に実行される1つがあります。すべてが正常に動作します。

これらのスクリプトは、アプリケーションフォルダに通常のファイルとしてインストールされます。インストール中に実行されるスクリプトは、実行の最後に自分自身を削除します。アンインストール時に実行されるスクリプトは、必要になるまでアプリケーションディレクトリにあります。

MSIには「バイナリテーブルストリーム」と呼ばれるものがあることを知りました。どのように機能するかはわかりませんが、カスタムアクションスクリプトはバイナリテーブルストリームとして保存できるようです。つまり、ファイルシステムにインストールされません。

VS2008で、バイナリテーブルストリームとしてMSIに埋め込まれるカスタムアクションスクリプトを構成できますか?

編集:バイナリテーブルストリームは単なる言い方だと思います。問題のファイルは、MSIの「Binary」という名前のテーブルに保存されています。

その場合、おそらく別の質問があります。MSIを後処理して、スクリプトを「バイナリテーブルではない」からバイナリテーブルに移動できますか?

4

1 に答える 1

1

私はVS2008を持っていませんが、Orcaのようなものでmsiを直接編集してこれを行う方法は次のとおりです:

  1. Binary テーブルを開き、新しい行を作成します。
  2. [バイナリ フィールド] をクリックし、スクリプトを参照してフィールドにストリーミングします。
  3. CustomAction テーブルで、バイナリ テーブルに格納されている jscript であることを反映するように型を変更し、新しいバイナリ テーブル エントリを指すようにソースを変更します。

Visual Studio にはおそらくこれを行う別の方法がありますが、うまくいけば、これで何かを始めることができます。

于 2009-09-16T17:22:41.217 に答える