" /> 如何在 wix .wxs 文件中指定 <SecureCustomProperties Property="PROP1;PROP2"/>

如何在 wix .wxs 文件中指定

2024-04-26

我想在 Wix 安装程序的 wix .wxs 文件中将属性指定为受限属性。

  <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>

任何想法?

想做PROP1, PROP2私人/安全。

尝试将它们设置为小写,但RegistrySearch不接受它:

错误 CNDL0012:Property/@Id 属性的值“Prop1”不能 包含小写字符。

由于这是一个搜索财产,因此它也必须是一个公共财产。这意味着 Property/@Id 值必须完全大写。


我相信你需要设置属性Secure="yes"对于 Property 元素,以便将相关属性添加到安全自定义属性 https://msdn.microsoft.com/en-us/library/windows/desktop/aa371571%28v=vs.85%29.aspx列表在您编译的 MSI 文件中。

Sample:

<Property Id="MYPROPERTY1" Secure="yes" Value="SomeValue" /> 
<Property Id="MYPROPERTY2" Secure="yes" Value="SomeOtherValue" /> 

由此产生的安全自定义属性 https://msdn.microsoft.com/en-us/library/windows/desktop/aa371571%28v=vs.85%29.aspx已编译的 MSI 中的值(还有两个自动生成的属性):MYPROPERTY1;MYPROPERTY2;WIX_DOWNGRADE_DETECTED;WIX_UPGRADE_DETECTED

您的案例:

因此,在您的情况下,类似于下面的内容(我将属性值设置为 0,以防注册表搜索找不到任何内容 - 那么我有一个默认值):

<Property Id="PROP1" Secure="yes" Value="0" >
   <RegistrySearch Id="Prop1"
                   Root="HKLM"
                   Key="SYSTEM\CurrentControlSet\Services\mysvc"
                   Name="installers"
                   Type="raw" />
</Property>

The 安全自定义属性 https://msdn.microsoft.com/en-us/library/windows/desktop/aa371571%28v=vs.85%29.aspx列出当安装用户不是管理员而是使用提升权限进行安装的标准用户时,可以发送到延迟模式(以提升的方式运行)的所有属性。要获得该问题的详细技术概述,请查看:受限制的公共财产 https://msdn.microsoft.com/en-us/library/windows/desktop/aa371243(v=vs.85).aspx.


题外话:

现在,强制性的离题:不久前有一个案例,我需要能够覆盖安全自定义属性 https://msdn.microsoft.com/en-us/library/windows/desktop/aa371571%28v=vs.85%29.aspx我自己出于某种原因 - 而不是根据具有的所有属性自动生成它Secure="yes"标志设置。

在我的一生中,我现在记不起这种需求背后的推理细节。也许克里斯或菲尔会记得/知道类似的案例。我认为这与 WiX 自动神奇地添加到我的 MSI 的属性有关,但它们没有设置安全,我需要确保它们安全,以便在延迟模式下可靠地访问它们的值。我不记得它与 WiX 的哪些功能相关。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 wix .wxs 文件中指定 的相关文章

  • 使用 元素通过 Wix 运行 SQL 脚本文件

    我是 Wix 安装程序的新手 我有一个要求 必须提供 SQL Server 登录凭据并从特定路径运行脚本 我不明白出了什么问题 项目已成功构建并创建了 msi 运行后我收到以下错误 错误26204 错误 2147217900 无法执行SQL
  • Wix:动态添加功能

    我们正在使用 Wix 为我们的软件构建 msi 我们有一些要在目标机器上实现的组件 插件 每个客户端的插件都不同 我们想要做的是创建一个标准构建并修改 msi 包中的功能列表 有没有办法通过自定义操作动态更改功能列表 例如 从自定义操作中读
  • Microsoft Visual Studio 安装程序项目 - 如何向使用 Process.Start() 执行但没有修复选项的 MSI 提供重新启动提示

    问题如下 我在 MSI 卸载之前调用了自定义卸载程序 正确关闭我的应用程序后 它会调用msiexec使用 Windows Installer 卸载 MSI 这是通过执行 msiexec x PRODUCT CODE promptrestar
  • 验证服务是否被标记为删除

    有时 当我卸载安装程序 使用 WIX 创建的 时 服务仍标记为删除 用户必须重新启动计算机才能再次安装 我如何验证该服务是否已标记为删除并告诉用户在进行其他安装之前重新启动计算机 一般来说 当某项服务仍然锁定在该服务上 从而阻止 Windo
  • 生成Mst响应工具

    我正在尝试使用 C 创建一个工具来获取通过单击 msi Windows 安装程序 的对话框生成的属性 我可以通过在 msi 关闭之前读取 property 表来获取最终的 msi 属性 但这包含相当多的不需要的属性 例如目录等 我希望能够做
  • 是否有其他方法可以访问延迟自定义操作中的会话详细信息?

    我有一个自定义操作 需要获取以下值才能将某些部分从安装文件夹复制到 VS2010 文件夹 VS2010目录路径 VS2010DEVENV财产 安装路径 INSTALLLOCATION财产 为了提供足够的权限 我将自定义操作设置为Execut
  • 维克斯。相同版本不同产品代码如何进行重大升级?

    基本上我需要改变这种行为 安装具有相同版本和升级代码的产品 但 不同的产品代码 是允许的 并被 MSI 视为两种产品 我需要将其作为重大升级进行威胁 因此 在 v 1 0 1 旧版本 不同的 ProductCode 上安装 v 1 0 1
  • 为什么最新的 Python 3.8.x 版本不提供 Windows 安装程序?

    我需要在Windows计算机上安装Python 3 8并希望使用最新的小版本3 8 12 https www python org downloads release python 3812 官方发布网页提供了源代码的 tarball 文件
  • 如何预设属性中未定义的 MSI SecureCustomProperties 以允许静默安装?

    特定供应商的 MSI 通常通过 EXE 包装器安装 但我尝试通过 GPO 使用静默安装进行部署 我正在努力预设 SecureCustomProperties 供应商记录了可以传递给 EXE 包装器的大写命令行选项 我假设它会将它们传递给 M
  • Wix 为整个树生成单个组件 id

    我是一个几乎没有 wix 经验的人 我正在努力支持 Windows 以及我负责的组件 我正在尝试为我的产品生成的一组文件创建合并模块 这些文件存在于许多子目录中 我想知道如何为整个树中的所有文件创建一个组件 ID 我不担心小的升级 因为那是
  • 如何在自定义操作期间移动进度条

    在安装程序中运行自定义操作时 没有进度条 我们正在使用立即 C 管理代码自定义操作 运行自定义操作时是否有其他方法显示进度 预先致谢 维卢 使用 ProgressText 元素 模板 属性是放置标记以反映进度的地方 例如 请参阅标准 Ins
  • CAQuietExec 命令字符串必须以带引号的应用程序名称开头

    好吧 我相信我正在按照 Wix3 5 中的在线示例执行安静命令 但我似乎无法让我的命令被引用
  • 无法使用wix工具集创建postgresql数据库

    我正在尝试使用 Wix ToolSet 在 PostgreSQL 中创建数据库 但总是收到错误 错误 2147467259 无法创建 SQL 数据库 pontow 错误详细信息 未知错误 当我尝试创建数据库或错误 无法连接到 SQL 数据库
  • 如何引导 SQL Server 2008 Express SP1?

    我正在尝试将 SQL Server 2008 Express SP1 引导到我的应用程序中 之前我使用 Wise for Windows 来执行必备安装 但 Wise 尚不支持 Windows Installer 4 5 我现在尝试将 Vi
  • 从 C# 调用 MsiEnumRelatedProducts 崩溃

    我在从 C 调用 MsiEnumRelatedProducts 时遇到了无穷无尽的麻烦 我尝试了 p invoke 定义的几种变体 但没有成功 out 和 ref 我认为问题在于最后一个参数 它是一个 LPTSTR 应该指向一个 39 个字
  • Wix 安装结束后添加多个复选框

    我的 C 应用程序有一个设置 在设置结束时 我添加了一个建议启动应用程序的复选框 效果很好 但我无法添加第二个复选框来提议启动可选安装程序 有我的代码
  • 如何在 MSBuild 中创建新属性并在 WIX 中引用它

    我们需要创建一个属性来指示我们的软件版本 然后我们想在我们的 WIX 项目中使用它 即在 wxs 文件中引用它 我们不想在 wxs 文件中定义它 因为我们希望 MSBuild 也根据此版本号重命名输出文件 PropertyGroup 中的常
  • 使用 cx_Freeze 创建 MSI 时可用的 bdist_msi 选项

    我无法找到有关可用选项的文档bdist msi使用以下命令创建 MSI 时的命令cx Freeze设置脚本 我在与此主题相关的其他 SO 帖子中看到了以下选项 bdist msi options data add to path initi
  • 安装引导程序如何检测是否安装了先决条件?

    试图解决这个问题 https stackoverflow com questions 2591384 bootstrapper setup exe says net 3 5 not found but launching msi direc
  • 在 Azure DevOps 中为 Wix MSI 文件生成 GUID

    我正在为 Web 服务器应用程序和 Sitecore 前端应用程序设置 Wix 安装程序 我的问题并非特定于 Web 服务器或 Sitecore 我的问题是 Wix 以及如何使用它进行持续交付 1 Wix 需要每个文件和产品本身的 GUID

随机推荐