关于复用组件的安装卸载问题

AgedBOY 2008-04-25 08:48:58
各位高手,我这里有个对复用组件的安装、卸载的问题。不知道各位遇到过没有,该如何解决呢?

起因是这样:

经过一段时间的开发,手头拥有了若干现成的可以复用的COM组件DLL。

然后我在自己的多个应用软件项目使用它们。因为它们都是相同的文件,又是COM组件。我就在安装包里把复用组件安装在Program Files\Common Files\(Company Name)下面了。

这样既节省磁盘空间,也确实体现了复用啊。而且通过观察Common Files,我看到很多公司大概也是这样做的。

可是现在问题来了。假如在同一台机器上安装了两个我的软件,它们又共享了相同的若干组件DLL。现在卸载其中一个软件,安装程序会把被共享的组件也删除,导致另一个没有卸载的软件也不能工作了!

而如果我选择让装在Common Files里的文件,装上就再也不卸了。那么这个问题固然解决了。而且对于现在的巨大硬盘来说,那点DLL似乎也不算什么。可是感觉毕竟不是个完美的解决办法。

请问各位高手?你们(或者你们公司)遇到过这样的问题吗?是怎么解决的?

谢谢!
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
AgedBOY 2008-04-30
  • 打赏
  • 举报
回复
我看到Installshield(以及其他类似工具)里面可以把文件设置为“Shared”了。谢谢jameshooo以及各位。
  • 打赏
  • 举报
回复
现在的安装工具真方便.
Kudeet 2008-04-25
  • 打赏
  • 举报
回复
给你的Share COM DLL做一个类似的引用计数,卸载一次减1,最后再删除
jameshooo 2008-04-25
  • 打赏
  • 举报
回复
使用专业的安装工具,把DLL设置成共享即可,自动在注册表中维持引用计数。
CathySun118 2008-04-25
  • 打赏
  • 举报
回复
这个问题我也碰到过,你可以在卸载时检查有没有在使用这些COM组件,如果在使用,就不卸载。
我是自己做的一个打包工具。呵呵

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧