ClickOnceを介して使用できるようにアプリケーションを調整する必要があります。このアプリケーションは、.exeファイルと膨大な数のVisual C ++ライブラリで構成されており、それらの一部は、他のライブラリで使用されるインプロセスCOMサーバーです。
現在、インストーラーはregsvr32
COMサーバーを登録しますが、ClickOnceアプリケーションはインストール中にレジストリを変更することを許可されていないようです。だから私たちは何か他のものが必要です。
オプション1は、削除CoCreateInstance()
して代わりにLoadLibraryEx()
/を使用することDllGetClassObject()
です。これにはコードの変更が必要ですが、非常に信頼性があります。これが機能しない理由はわかりません。
オプション2は、マニフェストとサイドバイサイドCOMアクティベーションを使用することです。私がすぐに目にする問題は、ナイトリービルドごとにバージョン番号をインクリメントするため、マニフェストを自動的に更新する必要があることです。それはあまり刺激的ではありません。サイドバイサイドCOMアクティベーションを使用することのその他のそれほど明白ではない制限は何ですか?