我在RTM下面的“Reg2015”组分,其中我忘了分配的keyPath:PYRO0243同时建立补丁
<DirectoryRef Id="INSTALLLOCATION">
<Component Id="Reg2015" Guid="{xxx}" Win64="no" >
<RegistryKey Root="HKLM" Key="SOFTWARE\Mine" >
<RegistryValue Name="RefCount" Value="1" Type="integer" />
<RegistryValue Name="Name" Value="Mine" Type="string" Action="write" />
</RegistryKey>
</Component>
...
</DirectoryRef>
为了制备贴片,我改变“引用计数”为“2”,并加入到修补WXS。
现在PYRO.EXE抱怨这样的:
error PYRO0243: Component 'Reg2015' has a changed keypath in the transform 'C:\Patch\Patch.Wixmst'. Patches cannot change the keypath of a component.
error PYRO0260: Product '{xxx}': Table 'CreateFolder' has a new row 'INSTALLLOCATION/Reg2015' added. This makes the patch not uninstallable.
我理解,因为没有“的keyPath”,它的keyPath默认为INSTALLLOCATION,但不知道该组件的ID被认为是一个目录。
(1)有人可以解释为什么吗?
(2)有什么办法可以传递PYRO错误吗?
(3)对于我的下一个主要版本,如果我添加“的keyPath”任何“RegistryValue”元素,如
<RegistryValue Name="RefCount" Value="1" Type="integer" KeyPath="yes" />
我应该能够在未来的补丁修改“引用次数”为2 ?
谢谢。