wix – 为什么在使用MSI时限制文件部署到用户配置文件或HKCU是个
为什么从我的MSI或安装文件限制文件部署到用户配置文件或HKCU是个好主意?
部署是大多数开发的关键部分.请给这个内容一个机会.我坚信,通过应用程序设计的微小变化可以大大提高软件质量,使部署更加合理,更可靠 – 这就是“答案”的全部 – 软件开发. 这是一个Q / A风格的问题,从一个过长的答案中分离出来:How do I avoid common design flaws in my WiX / MSI deployment solution?.
如上所述,本节与现有答案分开,范围更广:
How do I avoid common design flaws in my WiX / MSI deployment solution?(旨在帮助开发人员做出更好的部署决策的答案).
9.过度使用每用户文件和注册表部署. 某些应用程序无法为计算机上的所有用户正确运行,因为在安装期间添加的用户特定数据未正确添加到其他用户的配置文件和注册表.换句话说,该应用程序仅适用于安装该软件的用户.这显然是一个严重的设计错误. 有几种方法可以“修复”这个问题,但是由于一些基本原因,每个用户文件和设置的整个部署问题有些混乱: >如何引用多次安装的计数组件? (对于机器上的每个用户) 没有真正明确的答案,但有几种方法可以解决“问题”.我的首选选项是2& 3,因为我认为Windows安装程序不应该部署,跟踪或尝试修改或更糟糕的是,卸载用户数据和设置 – 它是不应该被干扰的用户数据: 9.1使用Windows Installer自我修复或类似操作 第一个选项是通过设置本身或类似设置的功能正确部署设置和文件以及HKCU注册表项.有两种主要方法可以做到这一点:依靠Windows Installer“自我修复”通常由广告快捷方式或使用Microsoft Active Setup触发. >自我修复是当您启动快捷方式启动应用程序时发生的事情,并且Windows Installer启动并且您在安装“某事”时看到进度条.通常添加的是HKCU注册表项和用户配置文件. 9.2用户数据的应用初始化 第二种选择,也是我觉得更清洁的选择,就是更改应用程序可执行文件,以便能够根据默认设置和从每台机器位置复制的模板或基于应用程序内部默认值初始化所有每用户设置和文件(从源代码)而不是通过您的设置写它们. >在此方案中,Windows Installer不会跟踪复制到每个用户的文件或设置.它被视为不应受到干扰的用户数据.这样可以避免在升级和自我修复(以及手动卸载和重新安装)期间发生的所有干扰,例如重置或覆盖用户数据. 9.3“云”或用户设置的数据库存储 在今天的“云环境”中更进一步 – 这在我看来是首选方案.为什么您的应用程序应限制为文件和注册表项和值?为什么不将所有用户特定设置存储在解决方案的数据库中? >所有设置的完全访问,控制和持久性,完全没有任何部署问题. >没有遭受“双源问题”.有一个实例,它实时更新.不像用户配置文件和“漫游”中看到的同步问题. >您甚至可以通过在部署过程中运行数据库脚本来“调整”设置中的所有用户设置,但如果您在公司环境中 – 不要只想提高票证然后让数据库管理员运行具有适当的事务支持和回滚的维护脚本更具吸引力? >这样的大型应用程序通常总是需要“缓存”计算机和HKCU中的某些设置文件,但似乎越来越可能将所有设置保存在用户配置文件区域中的单个临时文件中,这完全是“牺牲”甚至是“牺牲”如果已损坏则可以删除,然后下载上次保存的设置.>与其自己托管云,显然可以使用公司DBO配置他们自己的公司范围的云,他们可以完全控制所有设置,还可以强制执行软件操作的强制性策略和限制.更不用说适用于所有用户设置的正确备份. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – 如何从DOS批处理命令发送电子邮件?
- 触发Windows UAC提示时是否有WinAPI消息?
- 对于ARM Windows GCC工具链,Eclipse无法识别stdi
- windows – 为什么我在尝试打开和保存文件时收到
- 唤醒用于Windows的Lan工具?
- 尽管使用了Microsoft.Net.Compilers nuget包,但V
- 本地变量声明放置所需的Microsoft C/C++编译器开
- Microsoft Windows上的DisabledByDefault和Enabl
- 调试 – Dr. Watson Windows 2008的替代品?
- windows-desktop-gadgets – Windows边栏小工具重