Having just acquired the latest and greatest version of InstallShield Express, I was putting it to good use by building a fairly complex project. My project included custom actions, which are added through the graphical interface to various stages of the installation process. When I added the first custom action, I was not yet familiar with the exact syntax, and I managed to enter an action improperly; however, I promptly corrected my mistake.

Yet when I attempted to build my project, I kept getting errors: InstallShield was complaining about a missing file (Cannot stream the file into the Binary table), with a name that matched my earlier, incorrect entry.

A Google search quickly helped identify the problem: it appears that when you change a custom action, InstallShield does not properly erase the earlier settings from its internal tables, so when the project is built, it still attempts to locate any files that the earlier custom action specification referenced.

A pretty annoying and nasty bug in such a high-priced and mature product. And there's no way out! No method that I'm aware of that'd let me edit the (binary) project file and remove the offending, bogus filename reference.

As a workaround, I used a binary editor to overwrite the bogus name with a name of equal length referencing a file actually in my project. This worked, and I can now build the project, though I have reasons to suspect that it resulted in the named file being added to the project once again, making the resulting installation kit that much larger.

Extremely annoying, to say the least! Fortunately, there's a better solution: a tool, available from Microsoft as part of the Windows Installer SDK, called ORCA.EXE, can be used to edit InstallShield X Express files. Judging by this experience, this seems like an indispensable tool for any InstallShield developer!