Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 如果应用程序由其他用户启动,MSI安装程序将还原修改后的安装文件_Wix_Windows Installer_Wix3.5 - Fatal编程技术网

Wix 如果应用程序由其他用户启动,MSI安装程序将还原修改后的安装文件

Wix 如果应用程序由其他用户启动,MSI安装程序将还原修改后的安装文件,wix,windows-installer,wix3.5,Wix,Windows Installer,Wix3.5,我有一个设想, 在特定的机器上,我正在使用MSI安装程序安装自定义软件。MSI安装程序是使用PerMachine标记创建的,因此该计算机的所有用户都可以使用该软件。 现在, 我在C:\MyApp\目录下安装了该软件 然后我修改了C:\MyApp\Config文件夹中的一些配置文件,以确保软件与我的其他服务连接 我启动了应用程序,它运行良好 现在,在同一台机器上,我与另一个用户登录 我开始申请 MSI窗口弹出窗口,带有一些安装进度条 它消失,应用程序启动,但无法加载 但是我修改的所有文件现在都恢复

我有一个设想, 在特定的机器上,我正在使用MSI安装程序安装自定义软件。MSI安装程序是使用
PerMachine
标记创建的,因此该计算机的所有用户都可以使用该软件。 现在,

  • 我在C:\MyApp\目录下安装了该软件
  • 然后我修改了C:\MyApp\Config文件夹中的一些配置文件,以确保软件与我的其他服务连接
  • 我启动了应用程序,它运行良好
  • 现在,在同一台机器上,我与另一个用户登录

  • 我开始申请
  • MSI窗口弹出窗口,带有一些安装进度条
  • 它消失,应用程序启动,但无法加载
  • 但是我修改的所有文件现在都恢复了,我需要再次修改这些文件
  • 几点:

  • 我的安装目录是C:\MyApp,不是任何自定义用户目录。因此,修改后的文件应适用于所有用户
  • 我认为MSI在我与新用户登录时正在回滚更改
  • 如何阻止这一切

    请帮助

    自我修复:是您看到的行为的原因。请参阅链接以了解发生的情况的解释。-从不同角度提供有关自我修复信息的多个链接

    简短解释:基本上,启动播发的快捷方式会触发对已安装文件的完整性检查,如果发现文件或注册表设置丢失,则会进行自我修复。它将放置丢失的文件和设置。在此过程中,它有时会覆盖更改的设置文件-您描述的问题(由于各种原因-一个带有各种提示的长答案)

    修复?:我的首选修复方法是不安装设置文件并更新它们,而是让应用程序在第一次启动时生成它们—每个用户一个文件,或者为所有用户共享一个文件。还可以使用安装的设置文件的只读副本复制到生成和更新的新文件。我还建议您将这些文件放在用户配置文件中的可写位置,而不是主文件夹中。您的设置将永远不会干扰这些生成的文件。您还可以尝试将文件的宿主组件设置为“永久”和“从不覆盖”。不太整洁。在我看来,最好的解决方案是将设置保存在数据库中,并在发布时获取它们。这样可以很好地控制所有设置。注意网络和防火墙问题

    我希望这能回答你的问题。您正在安装IIS文件吗?我发现IIS安装有更好的功能列表——尽管我缺乏足够的数据来总结。这里有一些视频:-WiX也很好,但是没有高级安装程序的良好GUI

    注意:您真的不应该安装到C:\的根目录下。Windows Installer积极尝试使其变得困难,并且可能产生副作用。但是,您可以将IIS文件夹作为目标—无论它们位于何处


    更新:关于如何允许选择性更新设置文件-我必须重新启动。

    感谢您的详细回答。这对我正确理解这个问题有很大帮助,但我遇到了一个更奇怪的情况,我在另一台Windows 10笔记本电脑上运行了相同的安装,并按原样执行上述情况,但不会为其他用户还原文件,虽然第一次出现某些MSI进度条,但未还原文件。获得了关于上述问题的一些输入,仅针对第一次运行应用程序的新创建用户还原文件,如果我们卸载了产品,再次安装并通过管理员用户修改了文件,然后使用相同的其他用户登录,在还原文件的地方,现在不会还原文件。您为安装这些文件的组件设置了哪些密钥路径?它是文件路径还是注册表路径?