0

最近、カスタム アクションに悪いバグがある MSI が発生しました。MSI バイナリ テーブルの変換を作成することができました。これは機能しましたが、運が良かったと思います。カスタム アクション (Installscript) を変更し、スクリプトをコンパイルして、バイナリ テーブルをエクスポートしました。バイナリ テーブルをベース MSI のコピーにインポートし、ベース MSI と新しいバイナリ テーブルのコピーから MST を作成しました。私は基本的にこれを行うことで ISSetup.dll を置き換えました。

私の質問は、これを機能させることができて幸運でしたか? 私が考えていないこのプロセスの落とし穴は何ですか?これを行うためのより良い方法はありますか?

4

1 に答える 1

0

エンタープライズ配布用にソフトウェアを再パッケージ化していた頃、私は確かにあなたが説明したような方法でパッチ、変換、およびバージョン アップグレードを行いましたが、問題はありませんでした。ただし、バイナリ テーブルのみを介してバイナリ ファイルを置き換えたことがあるかどうかは覚えていません...

代わりに、通常、MSIDB.EXE を使用してファイルまたは CAB を抽出し、変更を追加してから、ファイルを再インポートしました。MSIDB.EXE プログラムを自分で実行するには、おそらく構文以外は必要ありませんが、ここにはいくつかの詳細な手順があります。

既存のファイルを置き換えるだけである限り、バイナリテーブル全体をインポートする方法が問題を引き起こす理由は考えられません。ただし、今後の参考のために、上記の手法の方が高速で簡単であることに気付くかもしれません。

于 2010-03-24T14:11:54.843 に答える