首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vsdrfCOMSelfReg等价于WixSharp

vsdrfCOMSelfReg等价于WixSharp
EN

Stack Overflow用户
提问于 2014-08-25 15:01:25
回答 2查看 724关注 0票数 0

我正在尝试使用WixSharp重新创建遗留安装程序的功能。在遗留安装项目中,一些第三方DLL被标记为"vsdrfCOMSelfReg“。I have seen in various places,您可以将它添加到文件标记SelfRegCost="0"中,但它受到高度的反对。

如何使用WixSharp正确注册COM DLL?是否有一种方法只将SelfRegCost字段添加到来自WixSharp的DLL文件标记中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-26 15:02:43

在进行了进一步的源代码浏览和实验之后,我想出了如何通过WixSharp强制使用邪恶的方法。我后来还发现,WixSharp示例"CustomAttributes“在某种程度上涵盖了这一点。

“邪恶之路”

代码语言:javascript
复制
File LibToReg = new File("..\Path\To\LibToReg.dll");
LibToReg.AttributesDefinition += "SelfRegCost=1";

或者(基于CustomAttributes示例):

代码语言:javascript
复制
File LibToReg = new File("..\Path\To\LibToReg.dll")
            {
                Attributes = new Attributes() { { "SelfRegCost", "1" } }
            };

这将在下面生成以下wxs:

代码语言:javascript
复制
<Component Id="Component.LibToReg.dll" Guid="EABD7A49-26DD-4720-AE5A-AA9EEFD8C91A">
          <File Id="File.LibToReg.dll" Source="..\Path\To\LibToReg.dll" SelfRegCost="1" />
</Component>

生成的其余代码看起来与已安装的任何其他DLL相同。

作为参考,这里是原始wxs源代码,它使用外接程序中的"VDProj到WiX转换器“从最初的安装项目生成。我相信SelfRegCost="0“是由转换器添加的,但是一个同事后来可能已经手动添加了它。

代码语言:javascript
复制
<Component Id='com_FB7105EC_5352_4561_AE01_405562F0EA1E' Guid='6718170E-0335-4FD6-A1E8-D9E926DDE3EC' Permanent='no' SharedDllRefCount='no' Transitive='no'>
            <File Id='_FB7105EC_5352_4561_AE01_405562F0EA1E' DiskId='1' Hidden='no' ReadOnly='no' SelfRegCost='0' System='no' Vital='yes' Compressed='yes' Name='LibToReg.dll' Source='..\Path\To\LibToReg.dll' KeyPath='yes' />
</Component>
票数 1
EN

Stack Overflow用户

发布于 2014-08-25 19:54:36

的确,您可以在File元素中说一些类似于SelfRegCost=1的话,但是每个安装人员都会告诉您这是邪恶的,就像您发现的那样。非邪恶的方法是在Dll上使用heat.exe将注册数据提取到wxs文件中。如果有必要,通过在tlb文件上运行heat.exe来为类型库数据添加接口条目。热只是一个WiX工具,我看不出WiXSharp是怎么回事。

重点是注册数据是静态的,可以通过WiX存储在MSI中,只需在安装时将其写入系统,而不需要加载和调用Dll。

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

https://stackoverflow.com/questions/25488830

复制
相关文章

相似问题

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