我正在研究用Wix编写的MSI安装程序。安装程序适用于每个用户和每个计算机的上下文。
在每台机器安装中,一切顺利;为初始用户安装和配置产品。切换到测试用户后,应用程序将正确显示在开始菜单中。第一次运行它时,msiexec进程从正在配置应用程序的消息开始。 但是,如果原始.msi已被删除,则此过程将失败。
失败的设置操作在其日志中提供以下消息:
错误1706.找不到产品myProduct的安装包。使用安装包“myInstaller.msi”的有效副本再次尝试安装。
===记录已停止:2017年3月16日11:15:52 ===
我从Rob Mensching(Wix的导演)阅读blog post时了解到,可能无法仅编辑源列表以指向Windows缓存的.msi,这是由另一个{i支持的一个点{ {3}}我找到了。这是对的吗?
有没有办法阻止用户在首次运行时调用msi的整个动作?缓存msi或保持原始不理想,我想使用。 msi在自定义引导程序中,涉及在安装完成后删除msi。
答案 0 :(得分:3)
Microsoft建议您保留原始MSI,规则31:
我不会重复它所说的有关修复/弹性的内容,但是你无法保证某些时候不需要源MSI。
您可能正在进行此“修复”,因为有一些资源(最有可能的文件)正在安装到用户配置文件位置。当另一个用户登录并使用该文件丢失的应用程序时,应用程序可能会被破坏。例如,安装到用户的应用程序数据的文件需要对系统的所有用户可用,而不仅仅是安装它的用户。
因此,保持MSI可能并不理想,但强烈建议使用,并且在您使用多个用户的产品的情况下,更有可能需要MSI。在MsiInstaller下应该有一个应用程序事件日志条目,说明缺少的资源。