views:

77

answers:

1

We recently had an MSI go out the door with a bad bug in a custom action. I was able to create a transform for the MSI binary table and this did work but I think I was lucky. I altered the custom action (Installscript), compiled the script and then exported the binary table. I imported the binary table into a copy of the base MSI and then created an MST from the base MSI and the copy with the new binary table. I basically replaced ISSetup.dll by doing this.

My question is, was I lucky to get this to work? What are the pitfalls of this process that I'm not thinking of and is there a better way to do this?

A: 

In my days repackaging software for enterprise distribution, I certainly made patches, transforms, and version upgrades by methods like you have described, with no issues. However, I don't recall if I ever replaced a binary file via the the binary table alone...

Instead, I typically used MSIDB.EXE to extract the files or CAB, then added my changes, then re-imported the file(s). There's are some extensive instructions here, although you probably won't need more than the syntax for the MSIDB.EXE program to do it yourself.

I can't think of a reason why your method of importing the entire binary table would cause problems, as long as you're only replacing an existing file. But for future reference, you may find the above technique to be faster and easier.

ewall

related questions