я имел следующий компонент «Reg2015» в RTM, в которой я забыл назначить ключевой путь: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>
Чтобы подготовить патч, я изменил «RefCount» на «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.
Я понимаю, так как не было никакого «ключевой путем», его не ключевой путь по умолчанию к INSTALLLOCATION, но не знало, что компонент ID рассматривались как каталог.
(1) Может кто-нибудь объяснить, почему?
(2) Есть ли способ пройти ошибки PYRO?
(3) Для моего следующего релиза, если добавить «Ключевой путь» к любому элементу «RegistryValue», как
<RegistryValue Name="RefCount" Value="1" Type="integer" KeyPath="yes" />
я должен быть в состоянии изменить «RefCount» 2 в будущем патче ?
Спасибо.