【发布时间】:2014-05-29 18:47:18
【问题描述】:
我编写了一个程序集,它使用 regasm 在我的开发机器上注册并正常工作。我想知道在用户计算机上部署此类库的推荐方法是什么。我的用户将使用 Excel VBA 中的 COM 库。
我知道我可以编写一个简单的脚本来调用 regasm 并将其交付给用户,但我不确定这是否是最佳做法。例如,在交付了几次更新之后,我的用户可能最终注册了几个版本的库,所以我想为他们提供一种在不再需要时卸载旧版本的方法。用户将自己编写 VBA 脚本,因此他们将知道他们使用的 COM 库的版本,因此他们应该能够知道可以卸载哪些版本。
最佳做法是什么?
【问题讨论】:
-
如果您根本不说您希望使用该服务器的客户端程序的类型,则无法有意义地回答这个问题。 COM 有一个强大的 DLL Hell 问题,您会通过随意删除或替换旧版本而陷入麻烦。您破坏客户端程序的几率非常高。
-
@HansPassant - 已编辑。
-
所以你不知道客户端程序员使用的是什么版本。不要不自动卸载旧版本,你必须让他们自己去做。确保新版本可以与旧版本和平共存。这意味着您必须使用新的 [AssemblyVersion] 部署到 GAC。并遵循 COM 规则,接口的更改需要新的 guid,因此新版本的注册不会覆盖旧版本。
标签: .net com installation .net-assembly regasm