You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Wix的.wxs文件中配置SecureCustomProperties及受限属性PROP1、PROP2

在Wix .wxs文件中配置安全受限属性(SecureCustomProperties)的正确方式

我来帮你搞定这个Wix的安全属性配置问题,其实操作起来很直接,咱们把步骤拆解清楚:

1. 保留你的注册表搜索属性定义

你已经写好的通过注册表搜索获取PROP1和PROP2的代码完全可以保留,这部分是正确的:

<Property Id="PROP1">
  <RegistrySearch Id="Prop1" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\mysvc" Name="installers" Type="raw" />
</Property>
<Property Id="PROP2">
  <RegistrySearch Id="Prop2" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\mysvc" Name="DisplayName" Type="raw" />
</Property>

2. 在Product元素中添加SecureCustomProperties配置

要把这两个属性标记为安全受限,你需要在<Product>标签内直接添加<SecureCustomProperties>元素,将PROP1和PROP2用分号分隔作为它的内容。这样就能确保这些属性不会被外部恶意篡改,只能在安装包内部安全传递。

完整的配置示例大概是这样:

<Product Id="*" Name="YourProductName" Language="1033" Version="1.0.0.0" Manufacturer="YourCompany" UpgradeCode="PUT-YOUR-GUID-HERE">
  <!-- 其他Product内的基础配置,比如Package、Media等 -->
  
  <!-- 你的注册表搜索属性定义 -->
  <Property Id="PROP1">
    <RegistrySearch Id="Prop1" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\mysvc" Name="installers" Type="raw" />
  </Property>
  <Property Id="PROP2">
    <RegistrySearch Id="Prop2" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\mysvc" Name="DisplayName" Type="raw" />
  </Property>
  
  <!-- 关键:标记属性为安全受限 -->
  <SecureCustomProperties>PROP1;PROP2</SecureCustomProperties>
  
  <!-- 其他组件、Feature等业务配置 -->
</Product>

几个需要注意的细节

  • <SecureCustomProperties>必须是<Product>的直接子元素,放到其他位置(比如Property元素内部)不会生效。
  • 如果之后需要添加更多安全属性,直接在分号后追加即可,比如PROP1;PROP2;PROP3。
  • 注册表搜索的Type="raw"会返回值的原始格式,如果你目标是字符串类型,也可以换成Type="string",根据实际需求调整。

这样配置完成后,PROP1和PROP2就会被标记为Windows Installer的安全受限属性,完全符合你的需求啦。

内容的提问来源于stack exchange,提问作者user3664223

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:35:46