我在使用 WiX 时部署一个单词添加,涉及x84 目标平台(至少办公室的安装必须是x86, 使用OS平台的时间从不少于此), 一切都运作良好, 我的 COM Interop 注册了 Word Add in works, 并在自动启动时添加了字词, 我第一次安装了添加器 。
我在跟踪登记簿的登记材料(从热输出中切除)
我创建了一个中间文件, 帮助我使用这个热命令 进行COM Interop注册:
"C:Program FilesWindows Installer XML v3.5inheat.exe" file MyAddin.dll -ag -template fragment -out MyAddin.wxs
Interesst 的输出看起来像 : (我知道使用 ReportValue 的方式已被折旧 )
<Class Id="{10BC65F1-32C0-3ED4-98A0-17661A8C4455}" Context="InprocServer32" Description="MyAddin.MyAddinClass" ThreadingModel="both" ForeignServer="mscoree.dll">
<ProgId Id="MyAddin.MyAddinClass" Description="MyAddin.MyAddinClass" />
</Class>
<File Id="filCC4172BEC1312562EDEF49648E45AE0D" KeyPath="yes" Source="..MyAddininDebugMyAddin.dll" />
<RegistryValue Root="HKCR" Key="CLSID{10BC65F1-32C0-3ED4-98A0-17661A8C4455}Implemented Categories{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID{10BC65F1-32C0-3ED4-98A0-17661A8C4455}InprocServer321.0.0.0" Name="Class" Value="MyAddin.MyAddinClass" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID{10BC65F1-32C0-3ED4-98A0-17661A8C4455}InprocServer321.0.0.0" Name="Assembly" Value="MyAddin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID{10BC65F1-32C0-3ED4-98A0-17661A8C4455}InprocServer321.0.0.0" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID{10BC65F1-32C0-3ED4-98A0-17661A8C4455}InprocServer321.0.0.0" Name="CodeBase" Value="file:///[#filCC4172BEC1312562EDEF49648E45AE0D]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID{10BC65F1-32C0-3ED4-98A0-17661A8C4455}InprocServer32" Name="Class" Value="MyAddin.MyAddinClass" Type="string"Action="write" />
<RegistryValue Root="HKCR" Key="CLSID{10BC65F1-32C0-3ED4-98A0-17661A8C4455}InprocServer32" Name="Assembly" Value="MyAddin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID{10BC65F1-32C0-3ED4-98A0-17661A8C4455}InprocServer32" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID{10BC65F1-32C0-3ED4-98A0-17661A8C4455}InprocServer32" Name="CodeBase" Value="file:///[#filCC4172BEC1312562EDEF49648E45AE0D]" Type="string" Action="write" />
包含此内容的组件有 Win64Flag 标签设置为是 。 因此我想事情会写到注册处的 x64 部分 。 在此之前, 我读到关于 < a href=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
例如,32位 InprocServer32 键与64位应用程序无关,因此,64位登记册的观点没有反映InprocServer32 键。
此外:
然而,64位应用程序可以使用32位本地服务器32 键,而本地服务器32 键得到反映。
但我已经尝试使用本地服务32, 而不是InprocServer32, 但这样做,
我是否必须拨打"http://msdn.microsoft.com/en/en/library/tzat5yw6%28v=vs.80%29.aspx" rel=“nofollow”>RegAsm工具 或我错过了x64平台的标签或 Interop注册选项?