1

我有一个写入 Windows 注册表的 WiX 安装程序: HKLM\Software\Foo

Foo及其后代只能由管理员编辑(用户只能阅读)

真实的情况是Foo(在以前的版本中)已经编写了用户的可编辑权限(!!)。

考虑到这种情况,您将如何显式删除 Foo(及其后代)中的用户可写权限?

我已经尝试过PermissionEx(来自 util wix 扩展),但没有任何好的结果(权限没有改变)。代码:

<Component Id="ComponentId" Guid="[GENERATE-GUID]]">
    <RegistryKey Id="reg857CD83358A344C2982DC6BA6B047754" Root='HKLM' Key='SOFTWARE\Foo' Action='createAndRemoveOnUninstall'>
      <util:PermissionEx User="Users" GenericRead="yes" Read="yes" GenericWrite="no"/>
      <RegistryValue Id="regFD4780BBE853437A9D778D0B51D2E6AD" Type='string' Key='Bar' Name='prop_name' Value='prop_value' KeyPath="yes"/>
    </RegistryKey>
</Component>
4

1 回答 1

2

使用WiX Permission Builtin而不是util:PermissionEx 扩展似乎可以解决问题。但是,您必须在每个对象中设置权限。

下一篇文章对我有帮助:Wix RegistryKey Permission

于 2013-07-02T22:20:12.157 回答