我需要注册一个dll。现在正在注册下面的dll
<CustomAction Id='comReg' Directory='INSTALLLOCATION' Impersonate='no' Execute='deferred'
ExeCommand='"[NETFRAMEWORK40CLIENTINSTALLROOTDIR]regasm.exe" "[INSTALLLOCATION]myProduct.dll" /codebase' Return='check' />
但所有人都建议在互联网上随时随地使用HEAT.exe。我甚至经历过this link.但是他们只有语法等等。我真的不知道如何通过知道这些语法来处理它。
我需要一些一步一步的程序或一些好的博客,精心讲述如何收集一个dll以及如何将其推入wix代码以及如何完成注册表,以便我我也可以根据条件注册我的dll。即使我试过这个link alse
此致
答案 0 :(得分:0)
通过标准Windows Installer操作和表来注册COM组件。需要许多表条目,因此WiX提供heat.exe来收集COM文件。它的工作原理是检查文件中的类型库,如果存在DllRegisterServer入口点,则在注册表沙箱中运行它,其中拦截和捕获更改。 (在Windows Installer [1999-present]的时代,DllRegisterServer实际上已被弃用于任何其他目的。)
您可能知道,功能是用户可选择的最小安装单位。组件是一个或多个产品中的一个或功能的成员。 Heat为其收获的每个文件创建一个组件,为每个收获运行创建一个ComponenentGroup。因此,您必须选择一个ComponentGroup Id并在一个或多个功能中引用它。您还必须为ComponentGroup的目标选择目录ID。
现在,只需编辑项目文件即可收集文件。要编辑项目文件,您可以使用文本编辑器,但Visual Studio都是为它设置的。请参阅How to: Edit Project Files。
将HarvestFile元素添加到新的或现有的ItemGroup,输入所需的ComponentGroup ID和目录ID
<ItemGroup>
<HarvestFile Include="comserver.dll">
<ComponentGroupName>COM</ComponentGroupName>
<DirectoryRefId>ServerDir</DirectoryRefId>
</HarvestFile>
</ItemGroup>
在Product.wxs或其他地方,将ComponentGroupRef添加到一个或多个功能。