首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Wix3.9中正确注册DLL

如何在Wix3.9中正确注册DLL
EN

Stack Overflow用户
提问于 2015-06-22 18:35:56
回答 1查看 974关注 0票数 1

我正在构建一个安装程序,并使用heat.exe来获取所有需要的文件。然而,我需要注册一些DLL和OCX文件,我环顾了一下怎么做,但似乎有一些关于如何实现注册这些文件的争论,在stackoverflow以及其他网站和论坛上。我想使用以下代码:SelfRegCost="1",因为它看起来是注册文件的最简单的方法。但是人们不喜欢它,因为它可能会在修复或卸载程序时出现问题。

你对这种方法有什么看法?你有什么建议吗?推荐的代码实现示例将不胜感激。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-06-22 22:57:44

简而言之,任何形式的自我注册(COM就是其中之一)都是反模式。原因多种多样,其中有几个原因:

1)它们增加了安装的脆弱性

2)当失败时,他们可以停止静默安装。

3)他们不会记录任何关于失败原因的信息。

4)它们在进程外;安装程序不知道它们(无修复)

5)它们破坏了Windows Installer的事务性本质(无回滚)

6)它们减慢了安装速度

7)它们隐藏了实现细节,并且无法观察或转换

我要说的是,这不是一个观点问题,而是一个最佳实践的事实问题。但我想,说到底,最佳实践也只是意见而已。尽管如此,在过去的20年里,我已经编写了数千个安装程序,我可以毫无疑问地说,只要有可能,就应该跳过自我注册。取而代之的是使用热来“收集”COM元数据并将其编写到您的wxs代码中,以便MSI可以在本地为您处理这些数据。如果热火无法获得所有细节,还有其他技巧可以使用。

最后,尽可能不要使用COM。例如,您可以考虑使用RegFree COM清单来模拟组件的注册。

请参阅:Do not use the SelfReg and TypeLib tables

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30977769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档