我正在使用WiX Heat.exe
来获取文件目录并创建.wxs
文件。
其中一个文件依赖Microsoft.DirectX.Direct3D.dll
。
虽然Heat在“Root”注册表下注册了所有其他依赖项,例如:
<RegistryValue Root="HKCR" Key="..." Name="..." Value="..." Type="string" Action="write" />
Direct3D正在“用户”注册表中注册。
<RegistryValue Root="HKCU" Key="Software\Microsoft\Direct3D\MostRecentApplication" Name="Name" Value="heat.exe" Type="string" Action="write" />
导致以下错误:
ICE57:组件'x'同时具有 每台计算机KeyPath的每用户和每台机器数据
我该如何解决这个问题?
答案 0 :(得分:1)
Heat重新映射注册表,对正在收集的所有文件运行self reg,然后收集所有写入的注册表项。可能你的一个组件是在自我注册期间写这个键。您可以1)抑制注册表收集(-sreg)2)修改写入此密钥的任何组件不要这样做3)写一个xsl来删除收获的密钥。
此外,您应该考虑捆绑direct-x setup而不是重新分发各个DLL。