DWORD
我已经使用 WiX 创建了一个安装程序,并试图在我的产品修复安装期间保留现有的注册表项。为了存储现有值,我使用了以下 WiX 片段;
<Property Id="PreserveMySetting" Secure="yes">
<RegistrySearch Id="FindExistingMySetting"
Root="HKLM"
Key="Software\!(loc.ProductManufacturer)\!(loc.ProductName)"
Name="MySetting"
Type="raw"
Win64="no" />
</Property>
然后我稍后使用由保存的值驱动的组件进行设置。
问题是,注册表搜索将 DWORD 作为“格式化”字符串返回,例如;
#1
而不仅仅是
1
这意味着当我的组件设置注册表项时,它被创建为REG_SZ
值为“#1”,即使我已经指出它应该是一个整数;
<Component Id="MySettingKey"
Guid="{76C4B14C-14BC-42E1-91F0-75C9F2A20EC8}">
<RegistryValue Id="MySetting"
Action="write"
Name="MySetting"
Value="[PreserveMySetting]"
Type="integer"
KeyPath="yes"
Key="Software\!(loc.ProductManufacturer)\!(loc.ProductName)"
Root="HKMU"/>
</Component>
有没有办法获取组件使用的实际注册表值?