【问题标题】:How to achieve authoring a single package for per-user or per-machine installation如何实现为每用户或每台机器安装创作单个包
【发布时间】:2016-12-27 00:17:53
【问题描述】:

我尝试了为每个用户和每台机器创建单个 MSI 的所有方案。以下是我的解释:根据https://blogs.msdn.microsoft.com/windows_installer_team/2009/09/02/authoring-a-single-package-for-per-user-or-per-machine-installation-context-in-windows-7/

    <Property Id='ALLUSERS' Value='2' />
    <Property Id='MSIINSTALLPERUSER' Value='{}'  />

导致每台机器安装并且 MSIINSTALLPERUSER 的值为“1”导致每用户安装。

现在我正在运行一个自定义操作,该操作确定用户是否为管理员,因此将属性值更改为 {} 或 1。

我的问题是“ALLUSER”的值在安装过程中登录之前更改为 1。创建的日志显示:

  "PROPERTY CHANGE: Modifying ALLUSERS property. Its current value is '2'. Its new value: '1'." 

但是当我直接将 MSIPERUSER 值设置为“1”运行时,日志显示:

  "PROPERTY CHANGE: Deleting ALLUSERS property. Its current value is '2'."

所以请帮助我如何为管理员用户和普通用户开发一个安装程序。

提前致谢。

【问题讨论】:

    标签: wix windows-installer custom-action wix3.8


    【解决方案1】:

    基本上你遵循这里的规则:

    https://msdn.microsoft.com/en-us/library/windows/desktop/dd408068(v=vs.85).aspx

    这里的重点是 Windows 根据用户的权限来决定安装的工作方式,而不是您使用自定义操作。这就是属性值发生变化的原因。遵循这些规则,它就可以工作。

    【讨论】:

    • 如果我们关注该页面,安装程序将返回错误为“您没有足够的权限”。
    • ICE105 验证说明了什么?什么是 InstallPrivileges 设置? msdn.microsoft.com/en-us/library/aa367800(v=vs.85).aspx
    • 我正在使用 WixUI_advanced 对话框参考,但没有将 InstallPrivilege 设置为 Package。
    • 我猜是 wix ui 覆盖了你的设置。
    • 您好 PhilDW,双重用途安装程序的注册表根目录应该是什么。我们可以使用 HKMU。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    相关资源
    最近更新 更多