1

I'm adding files to an existing InstallShield MSI project, building the MSI, and then creating an MSP from it to apply to existing installations.

Problem is, when I add new files to the MSI project, the sequence numbers aren't set incrementally. I went into the Direct Editor, and edited the sequence numbers to make them start where the old ones stopped, but when I build the project, the sequence numbers I entered are ignored. If the sequence numbers are different like this, it will cause the MSP to not install correctly.

Is there a way to fix the sequence numbers getting overriden by InstallShield? If I don't add any new files to the project, the sequence numbers of the existing files stay the same. It's as if the new files I'm adding are getting installed "in the middle".

Any thoughts?

Thanks

Dan Smith
  • 102
  • 2
  • 14

3 Answers3

2

Could be a few issues...

If I remember correctly, I think you need to build the new MSI after setting the property used to point to the previous MSI package. That will force the new package to use the same file IDs as the old package.

If that doesn't fix the problem, it probably has something to do with a combination of how you're adding the new files to the package (do you have external CAB files?) and the patch build option to build a 'binary' patch

user707082
  • 36
  • 1
1

You might try saving the project in XML format - there are some oddities to the internal "unordered" database order that this can resolve. After the first save, close, and reload this way, you can convert back to a binary project if you like. If you attempt this after adding the new files, make sure to reorder the records in the XML of the File table, or delete them before attempting this.

Michael Urman
  • 15,737
  • 2
  • 28
  • 44
0

These sequence numbers do not need to be set in order. In fact in most cases I tend to use increments of 10 for different sequence numbers in windows installer in order to make sure I can resequence without changing all numbers for all items. Don't mess with these numbers, just let Installshield control them.

user707082 is correct that you should point to the previous build of the MSI to allow Installshield to sync guids for the new setup, but this is generally for dynamically generated components and the patch might still fail if you violate the Windows Installer component rules by overriding manually.

For patches to work I follow some rules of thumb:

  • One component per file
  • A changed absolute file path means a new component GUID
  • Never change a component GUID for a file that doesn't change absolute install path
  • Don't use Installshield's dynamic file linking
  • Follow all component creation rules (there are many, see the SDK)
  • Only use full file patches, never binary patches
  • Plus a few more that I don't recall right now. This is not my developer system
Stein Åsmul
  • 39,960
  • 25
  • 91
  • 164