【问题标题】:Update per machine instance of application in multiuser enviroment在多用户环境中更新应用程序的每台机器实例
【发布时间】:2016-01-07 15:45:08
【问题描述】:

安装程序/windows/wix 如何处理以下情况,即假设有多个用户正在使用每台机器上安装有选项的程序实例的机器上工作。然后其中一位用户继续升级应用程序。

安装如何进行以及如何在其他用户配置文件上进行处理? 是否必须对 WiX 项目进行任何其他更改才能允许安装程序进行此类更新?

我检查了该程序的实例未在其他用户配置文件上关闭,并且用户仍然可以使用该程序。

【问题讨论】:

    标签: windows wix windows-installer


    【解决方案1】:

    如果这是每台机器的产品安装,那么安装的产品只有一个实例,因此任何具有适当权限的用户都可以在选择时选择升级它。可能会为不同的用户运行应用程序的多个副本,但这与更新无关,因为仍然只有一个产品需要更新。实际执行更新的人拥有当前桌面的交互式视图,因此他们将看到任何 UI 通知 - 其他用户不会。

    多个用户的行为取决于 MSI 设计和应用程序本身。例如,如果 MSI 安装了数据文件的一个模板副本,然后应用程序会将其复制并修改到每个用户配置文件位置,则不涉及 MSI 升级,因为它不会替换由应用程序。

    如果您指的是正在运行的应用程序的多个副本,如果更新不影响正在使用的文件,您将不会看到任何问题,所以是的,用户可以继续工作。它是动态的,取决于文件替换规则,如果它们正在使用等等。

    在某些情况下,即使应用正在被卸载或替换,Windows 也可以保持其运行。它会制作二进制文件的私有副本,这些副本将在下次重新启动或程序完成时被删除。往往无法预测会发生什么。

    很遗憾,您的问题相当含糊,因此这个答案也可能含糊不清。如果您有一个特定的场景,并且您说您的更新是补丁还是重大升级,并且您还解释了您所指的用户配置文件,那么答案可能会更具体。

    【讨论】:

    • 为了更清楚,假设我们有两个用户登录到一台使用已安装产品实例的机器(exe 文件和一些 dll,所有数据都存储在用户配置文件中)。现在,如果其中一位用户决定升级到新版本的 exe 和 dll。运行更新的用户将通过“正在使用的文件”对话框提示关闭正在运行的程序的实例,并且将立即或在下次重新启动时进行更新。在第一种情况下,exe 和 dll 在磁盘上被覆盖。对第二个用户有影响吗?
    • 这些事情是不可预测的 - 找出在您的特定情况下会发生什么的最简单方法是执行该测试。
    • 我已经运行了测试,看起来一切正常。第二个用户可以在没有发行版的情况下使用程序。但我试图找到一些技术解释来确认我的测试,因为此时我只假设它应该工作
    • 阅读我的“在某些情况下......”段落。这可能就是正在发生的事情。 Windows 将应用程序隔离到自己的地址空间中,制作二进制文件的私有副本,诸如此类。
    猜你喜欢
    • 1970-01-01
    • 2020-10-18
    • 2011-02-13
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 2017-03-06
    相关资源
    最近更新 更多