0

作成時に msi に追加する CustomTable があります。このカスタム テーブルには、msi が展開サーバーにアップロードされるときに展開ソフトウェアが読み取るいくつかのバイナリ データ (xml ファイル) が含まれています。

msp ファイルの展開をサポートする必要があります。つまり、ユーザーが msp ファイルを展開サーバーにアップロードした場合でも、ソフトウェアは CustomTable のバイナリ データを読み取ることができるはずです。ただし、作成した msp ファイルに同じ CustomTable が含まれていることを確認する方法を見つけることができませんでした。

更新されたテーブルとファイルを確認するために ORCA を使用したので、msp に更新された xml が含まれていることがわかります。残念ながら、パッチ内に (明らかに) 存在しないため、CustomTable からデータをプログラムで読み取ることができないようです。msp ファイルから CustomTable にアクセスする方法を知っている人はいますか?

ありがとう - 説明が必要な場合はお知らせください。

4

2 に答える 2

0

パッチ (msp) には、以前の MSI パッケージへの変更のみが含まれているはずです。MSI パッケージの新しいバージョンでカスタム テーブルを変更しない場合、パッチには記載されません。そして、それは予想されます。

パッチを適用すると、最初の MSI パッケージが変更され (実際にはパッチが適用され)、再インストールが実行されます。これは、カスタム テーブルを読み取るカスタム アクションが、再インストール時に実行されないように明示的にスケジュールされていない場合、実行され、カスタム テーブルが検出されることを意味します。

于 2012-09-25T06:00:11.183 に答える
0

わかりました、ついに私の問題の解決策があります。

元の msi がないため、一時ディレクトリに空の msi を作成し、ApplyTransform を使用してその上に msp を適用できます。予想されるテーブルを作成し、それにダミー データを入力すると (幸いなことに、このテーブル内で予想される行は事前にわかっています)、ダミー msi の上にパッチを適用するプロセスにより、_Storages テーブルに正常にクエリを実行してアクセスすることができます。新しい xml を含む更新されたストリーム。これは、msp のアップロード中に処理できます。

きれいではありませんが、機能します。

于 2012-10-10T15:55:49.123 に答える