現在、クラス ライブラリ、インストーラー、およびセットアップ プロジェクトを含む C# ソリューションがあります。セットアップ プロジェクトは、私のクラス ライブラリ (dll) をインストールするための MSI を生成し、vsdrfCOM を登録します。これは、インストール後にエンド ユーザー クライアント上のサード パーティ アプリケーションによって参照されます。サードパーティのアプリを制御することはできません。これはすべて期待どおりに機能し、クラス ライブラリは問題なく参照され、展開された MSI を介してインストール/再インストールできます。
残念ながら、私が取り組もうとしている問題は、エンド ユーザーが MSI 経由でアンインストールし、新しい MSI をダウンロードして実行することを期待せずに、クラス ライブラリ (dll) に更新を適用する方法です。また、私が維持したい生成されたユーザー状態フォルダー/ファイルがあります。基本的にはクラスライブラリ(dll)を上書きするだけです。私が最初に撮影していたのは、ライブラリの初期化、リモートの場所へのヒット、バージョンのチェック、および必要に応じて新しい dll のダウンロードでした。次に、サードパーティ アプリケーションを再起動する必要があることをユーザーに通知します。
新しい dll をダウンロードして古い dll を上書きするだけでは、CLSID が維持されていても、レジストリが何かを気に入っていないように見えるため、機能しないようです。http://www.codeproject.com/KB/vb/Auto_Update_Revisited.aspxにある自動更新プロジェクトに触発されました。
フォーム/コンソール アプリケーションが関連付けられていない限り、ClickOnce はクラス ライブラリで動作しないようです。
- 上記のユーザー状態ファイルを上書きせずに、新しい MSI をダウンロードして古い MSI を受動的に上書きできるかどうかは不明です。
では、上記の条件下で MSI と共にインストールされた dll を更新する方法はありますか?
ありがとう。