carpat
carpat

Reputation: 871

MSI generated by WIX doesn't copy executable, copies other files, worked before

I've been working with Pandion (an open source XMPP client), which comes with wix scripts to generate installers.

So far, releasing a patch has worked: I run the included batch file, which ran the wix binaries and created an msi.

With the latest update, however, the installer no longer copies the executable (Pandion.exe) to the install directory. All of the other 400+ files are copied correctly.

EDIT: by update, I mean the changes I made, which are limited to a few javascript files. The wix files are all unchanged.

I've been trying to figure out what the problem is, but I'm just not that experienced with wix/msi and don't really know where to look.

I've got verbose logging enabled, which confirms all files are copied except for the executable. The auto-generated component.wxs contains the executable as a component. The installer first registers all components, including the executable, but when it starts copying files it just silently skips it and moves on to the next one.

If I run the installer again and repair the installation, the executable gets copied correctly.

If I uninstall everything and re-install from the first installer, all the previous patches work fine.

Upvotes: 3

Views: 1798

Answers (1)

BryanJ
BryanJ

Reputation: 8563

Check and see if the version of that specific file (Pandion.exe) is greater than in the previous installation. If for whatever reason the file is at a lesser version, then it may not get installed because:

  • During the update installation, WiX looks at the versioning of the .dlls and .exes
  • If the version of an installed file (Pandion.exe) is greater than the one about to be installed, then it is flagged that a newer version exists on the machine
  • During the removal of the previous version, all files are removed.
  • During installation of the update, Pandion.exe does not get installed because it has been flagged
  • During a reinstall/repair, it sees that Pandion.exe is missing and installs it.

Upvotes: 8

Related Questions