由WIX生成的MSI不复制可执行文件,复制其他文件,之前工作过

时间:2012-03-15 16:12:56

标签: wix windows-installer

我一直在使用Pandion(一个开源XMPP客户端),它带有wix脚本来生成安装程序。

到目前为止,发布补丁已经奏效了:我运行了包含的批处理文件,该文件运行了wix二进制文件并创建了一个msi。

但是,使用最新更新,安装程序不再将可执行文件(Pandion.exe)复制到安装目录。所有其他400多个文件都被正确复制。

编辑:通过更新,我的意思是我所做的更改,仅限于几个javascript文件。 wix文件都没有改变。

我一直在试图弄清楚问题是什么,但我对wix / msi没有经验,并且不知道在哪里看。

我启用了详细日志记录,确认除了可执行文件以外的所有文件都已复制。自动生成的component.wxs包含可执行文件作为组件。安装程序首先注册所有组件,包括可执行文件,但是当它开始复制文件时,它只是默默地跳过它并转到下一个文件。

如果我再次运行安装程序并修复安装,则可以正确复制可执行文件。

如果我卸载所有内容并从第一个安装程序重新安装,则所有以前的修补程序都可以正常工作。

1 个答案:

答案 0 :(得分:7)

检查并查看该特定文件(Pandion.exe)的版本是否大于先前安装中的版本。如果由于某种原因文件版本较小,则可能无法安装,因为:

  • 在更新安装期间,WiX会查看.dlls和.exes
  • 的版本控制
  • 如果已安装文件(Pandion.exe)的版本大于即将安装的文件版本,则会标记该计算机上存在较新版本
  • 在删除先前版本期间,将删除所有文件。
  • 在安装更新期间,Pandion.exe因为已标记为
  • 而未安装
  • 在重新安装/修复期间,它会看到Pandion.exe缺失并安装它。