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

car*_*pat 3 windows-installer wix

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

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

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

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

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

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

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

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

Bry*_*anJ 7

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

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