首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >regsvr32和windows installer

regsvr32和windows installer
EN

Stack Overflow用户
提问于 2010-03-24 15:45:27
回答 3查看 7.2K关注 0票数 1

我的项目使用了几个带有activex控件的dll文件。

现在我正在制作一个部署项目(windows installer)。

我需要使用regsvr32通过windows installer注册dlls。我该怎么做呢?我可以检测regsvr32是否失败吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-24 15:53:57

我猜想当你说你正在创建一个部署项目时,你指的是Visual Studio中可用的讨厌的工作?

如果是这样,对于每个DLL,您可以查看它们的属性,并将"Register“属性设置为COM。

如果你正在使用一些其他的部署技术(例如Wix,InstallShield等),那么答案可能会有所不同,但大多数都有一个简单的设置,即“这是一个需要注册的COM”,而不是你必须启动regsvr32。

至于检测故障-通过使用内置工具,COM注册发生在正常安装过程中,并且故障会导致安装回滚-不需要自己检查这一点;同样,您也不必检查文件是否已到达安装位置,也不必担心磁盘是否已满。

票数 9
EN

Stack Overflow用户

发布于 2013-02-10 10:53:37

在安装过程中使用regsvr32注册COM接口的最好方法是,不要注册。

在基于Windows Installer的安装过程中调用regsvr32和其他形式的“自我注册”是不好的做法。COM接口通常在多个产品之间共享。如果程序包A注册了COM接口IFoo,则程序包B(Re)注册了相同的接口,如果卸载了任一程序包并取消注册了IFoo,则会破坏其余的程序包。

首选方法是提取COM接口信息,并将其构建到.msi包的注册表条目中。MSI识别匹配的COM注册表项,并管理它们的引用计数,而不是复制它们。2nd..Nth条目只是增加引用计数,每次卸载都只是递减它,直到最后一次卸载将ref-count递减到零,并且注册表项实际上被删除。

在WiX中,heat工具用于将COM接口(以及其他数据)“收集”到包含必要注册表项的WiX源片段中。对于MSI和Installscript-MSI项目,Installshield有一个"COM extract at build“标志。其他Windows Installer工具集也具有类似的功能。

注意: Windows Installer(MSI)是基础安装管理API,它是Windows本身的一部分。您需要额外的工具来生成使用此接口的.msi包。

Windows Installer XML (WiX)是一种用于描述基于.msi的安装程序包的XML架构,以及用于从该架构中的文档生成实际的Windows安装程序包的工具。Installshield是另一个可以生成.msi包的工具。

这两个是我用过的。还有其他工具,如InstallAware和高级安装程序。我不能谈论他们的能力,因为我自己从来没有用过他们。Visual Studio也有一个用于生成安装包的插件,但根据我的经验,它对于工业强度的产品的可扩展性很差。

票数 2
EN

Stack Overflow用户

发布于 2010-03-24 15:54:45

你应该调查WiX这是微软的一个开源项目,它创建了windows installers (.msi),有一个叫做heat的工具,可以在不同的输入上生成代码,其中之一是动态链接库寄存器等。安装程序框架将负责是否发生了正确的注册

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

https://stackoverflow.com/questions/2506058

复制
相关文章

相似问题

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