単一のバンドルとして展開する必要がある 1 つの .Net クライアントと 1 つの VB6 クライアントを持つアプリケーションのシナリオがあります。手元の VB6 部分には、そのバイナリと ComPlus プロキシが含まれています。プロキシのインストーラーは、COMAdminCatalog.ExportApplication を使用して生成されます。3 つの部分は WiX Burn にバンドルされており、標準のブートストラップ アプリケーションを使用します。バンドルの作成は、自動ビルドおよびデプロイ チェーンの一部です。
問題は、ブートストラッパーでプロキシのインストーラーを処理する方法です。
- COMAdminCatalog.ExportApplication で製品およびアップグレード コードまたはバージョンを制御する方法はありません。したがって、以前のバージョンを新しいものにアップグレードすることはできません。(少なくとも私は方法を見つけていません。何かありますか?)
- COMAdminCatalog.ExportApplication から生成された msi は、修復または再インストールを処理しません。エラーが発生し、バンドル全体がロールバックされます。
- 2 つのバージョンのプロキシを同時にインストールすることはできません。2 つ目は、エラーとロールバックが発生します。
Complusproxy.msi をバット スクリプトにラップし、MsiPackage の代わりに ExePackage を使用しています。スクリプトは、complusproxy の以前のバージョンを削除することから始まります。これに関する問題は、すべての異なるインストール/アップグレード/アンインストール シナリオを正しく機能させることです。
生成された complusproxy.msi を編集してアップグレード コードとバージョンを制御し、それをビルド プロセスに追加するオプションを検討しています。
複雑な回避策を試みているように感じますが、それは正しい、より良い方法であるはずです。それを解決するためのより良い、または十分なアプローチは何でしょうか?