目前我有一个包含类库、安装程序和设置项目的 C# 解决方案。安装项目生成一个 MSI 来安装我的类库 (dll),注册 vsdrfCOM,在最终用户客户端上的第三方应用程序安装后引用该类库。我无法控制第三方应用程序。这一切都按预期工作,并且可以毫无问题地引用我的类库,并且可以通过部署的 MSI 安装/重新安装。
不幸的是,我要解决的问题是如何将更新应用到类库 (dll),而不期望最终用户通过 MSI 卸载、下载新的 MSI 并运行它。此外,还有一些我想维护的用户状态文件夹/文件。基本上,只需覆盖类库(dll)。我最初的目标是初始化库,点击远程位置,检查版本,并在需要时下载新的 dll。然后通知用户他们需要重新启动第三方应用程序。
只是下载一个新的 dll 并在旧的上粘贴似乎不起作用,即使 CLSID 得到维护,因为它看起来注册表不喜欢某些东西。受位于此处的自动更新项目的启发,http://www.codeproject.com/KB/vb/Auto_Update_Revisited.aspx
ClickOnce 似乎不适用于类库,除非您有一个与之绑定的 Forms/Console 应用程序。
- 不确定是否可以下载新的 MSI 并在不覆盖上述用户状态文件的情况下被动地运行旧 MSI。
那么,在上述情况下,有没有办法更新已经安装了MSI的dll呢?
谢谢。