I’ve gone back to my roots this week with doing a lot more MSI work than I have had to do in a while. I noticed that a few applications I had to package presented with a common issue that to me at least, didn’t seem too common a few years ago. That issue is that after extracting the Vendor MSI from my setup.exe, it would not allow me to run the MSI to install the application. The MSI was conditioned to only run when using the setup.exe.
After further investigation I found the setup.exe in question appeared to be used to install Installscript as a pre-requisite if required. I already had Installscript on my machine so it shouldn’t have been an issue for me to install the MSI but thanks to that requirement I wasn’t able to. So I looked in my MSI and found the following in the custom actions and sequences. It appeared to be checking for a property that didn’t exist and if it didn’t exist, it would not allow the installation to continue with the MSI. Basically hard coding the MSI so that a user could never install it manually and could only install using the setup.exe
So to get around this issue I simply set the property ISSETUPDRIVEN in the properties table of an MST I created. And set it’s value to 1. When I carried out the install again, it worked no problem. In this instance it was obvious to me that the pre-req was Installscript and I knew this was not an issue for me. You should be aware that in some cases you may not be so lucky and so you should thoroughly investigate exactly what the setup.exe is doing before attempting to work around this MSI issue. Try analyzing an install of the setup.exe and then compare to the install of your MSI and MST with the property set. Good Luck!