方案我为 Internet Explorer 10 插件创建了一个 .dll 文件。使用 regasm 我注册了 .dll 并在 IE10 中正常工作。我想开发一个 .msi 文件以便我可以分发它。我在开发它时遇到了几个问题。在安装过程中,应该在注册表中注册 dll 文件,但这些文件永远不会被注册,但没有 .msi 文件,如果简单地注册 .dll 就可以了。将 .dll 文件打包到 .msi 文件时会出现此问题。我已经浏览了 Wix 文档,建议使用 heat 工具集。以下是输出
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="TARGETDIR">
<Directory Id="dirCFD54C07EFB094CAD317543172D62CC3" Name="bin" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirCFD54C07EFB094CAD317543172D62CC3">
<Component Id="cmpA742B1B0BA7235FA026C505929929E25" Guid="{A6A2DF10-0BC0-410d- 8582-79DA83A83F19}">
<Class Id="{8A194578-81EA-4850-9911-13BA2D71EFBD}" Context="InprocServer32" Description="Greyhound.BHO.BHO" ThreadingModel="both" ForeignServer="mscoree.dll">
<ProgId Id="Greyhound.BHO.BHO" Description="Greyhound.BHO.BHO" />
</Class>
<File Id="filB636C21F357A14C42DFD0FBC9300D2F4" KeyPath="yes" Source="SourceDir\bin\greyhound.dll" />
<RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32\1.0.0.0" Name="Class" Value="Greyhound.BHO.BHO" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32\1.0.0.0" Name="Assembly" Value="Greyhound, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32\1.0.0.0" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32\1.0.0.0" Name="CodeBase" Value="file:///[#filB636C21F357A14C42DFD0FBC9300D2F4]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32" Name="Class" Value="Greyhound.BHO.BHO" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32" Name="Assembly" Value="Greyhound, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32" Name="CodeBase" Value="file:///[#filB636C21F357A14C42DFD0FBC9300D2F4]" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{8a194578-81ea-4850-9911-13ba2d71efbd}" Name="Alright" Value="1" Type="integer" Action="write" />
</Component>
</DirectoryRef>
</Fragment>
我很困惑我应该在哪里将此输出包含到我的 .wxs 文件中。即使生成上述文件,注册 .dll 的问题仍然存在。
如果有人可以对此有所了解,将不胜感激。谢谢