Installation Cannot Be Run Directly Launching The Msi Package
I had a vendor MSI that I needed to make changes too. I wanted to push it out as a silent install but as it was configured, it required user input to install correctly. I found a lot of information telling me that I needed a MSI transform (or MST) to do that. But I found almost no details on how to create that transform.
I eventually discovered the ORCA MSI Editor. I think its a Microsoft tool but I found it on this Technipage. ORCA looks at the MSI like its a database and exposes all the tables and records to you. It is a bit overwhelming to get into. After messing up a few MSI packages (make backups first) I discovered how easy it was to create a transform. Making changes is where it gets hard.

To create a mst transform, first open the MSI. Then under Transform, choose New Transform. Now make any changes or updates that you want to make. When you are done, under the Transform menu choose Generate Transform and save it. This will create a MST with your changes. To test the transform you can run your command like this: base.msi TRANSFORMS=transform1.mst
That looks easy and once you figure out what changes you are going to make then it is easy. Here are two links you should look at. Using a Sequence Table and the List of Database Tables. They were a huge help to me. Here are a few examples of changes that I made.
Aug 21, 2017. Message this installation can not run by directly launching the MSI package. You must run web installer. Your product can bypass this. We can help you on how to implement certain setup feature, but we cannot help you on what settings you need to add for your setup package. Unfortunately we are not. The ISScriptx.msi is located in the same folder as the MSI package and must be deployed on the target computer prior to the MSI. This installs the InstallScript engine required by the MSI package during deployment. Using an MSI editor, make the following modifications to the MSI, either directly or via a transform: Add the property ISSETUPDRIVEN to the property table and give it a value of 1. My Installshield based vendor MSI will not install unless I run setup.exe. I want to install the MSI directly. How can I do this? The Installshield file setup.exe launches a file called isscript.msi that, in turn, installs the InstallScript engine required to run InstallScript code. This article discusses.
The first one was to fix the message “This installation cannot be run directly launching the MSI package. You must run setup.exe“. In the Properties table add a row called ISSETUPDRIVEN with a value of 1. This will allow the msi to run on its own. Remember they added this check to make sure your version of Microsoft Installer supported the MSI. If it fails, you may have to install the correct files yourself.
My setup had one section with 3 options and I need to disable one of those options. I tracked that option down to a entry in the Feature table. Looking at the online documentation it looks like setting the Level value to 0 from 1 will do that for me.
Registry settings was also something I needed to mess with. All the registry settings were in the Registry table. I found the key I wanted to change and was able to change the value. There was a second key I had to add in by hand. It is one that the installer would prompt the user for and it had no default. If I want my silent install to work, I have to make sure that value gets set. The component column puts the key in a group that matches an installed component. I reused the component value of the other key I changed. I should never see one without the other. I set Root = 2 because that’s what the other key had.
That was all the changed I needed to make. It was a lot to take in at first. I had never created a MST before. It was a great way to work around the vendor. I know I have ran into this before where a MST was needed but I was able to just use a batchfile instead. Now that I am running things with a bit more security with windows 7, batch files just don’t cut it anymore.
Ok, I'm out of my element but here goes anyway.
I need to do a silent install of a vendor supplied windows program. The vendor supplied an MSI file to use with the install. I created a bat file to run msiexec that contains the following line:
When I execute the bat file an error dialog pops up that says:
'This installation cannot be run by directly launching the MSI package. You must run setup.exe'
and the msiexe error log says:
The error # is 1603 which implies a permissions problem but I've checked the access privileges and don't see any problem.
Is it true that I can't run msiexe without running Setup.exe?
Any help is appreciated - Thanks.
Stein Åsmul
2 Answers
The 'you must run setup.exe' is a vendor authored requirement not specific to MSI in general. They may have had a good reason for it or they may have just authored it as a gate check to not have to test other scenarios.

You'll have to edit the MSI with ORCA and look at the LaunchCondition and InstallExecuteSequence tables to figure out how they implemented. Then you can create a transform to bypass the check or possible pass a property in such as SETUPEXEDRIVEN=1 to simulate being called from setup.exe. (One particularly large and well known installer development product passes this into their MSI when you create a setup.exe with it.)
The setup.exe may be serving a purpose. For example it might be authored with a manifest requiring elevation or it might be downloading and installing prerequisites or possible making sure the MSI is cached in a given location for future installation transactions.
Also I assume you want to add a /QB or /QN to make the install go silent. You'll like also need to have already elevated the cmd session prior to calling since MSI doesn't support UAC prompts when installing silently.
Christopher PainterChristopher PainterThis is most likely an Installscript MSI file made using Installshield. This is a non-standard MSI file featuring more advanced GUI and a few other advantages. In my opinion this is a particularly problematic type of setup due to a few serious bugs without suitable workarounds. I consistently recommend this project type to never be used. It is especially problematic for corporate deployment.
These setups feature a number of command line parameters for the setup.exe file. As Chris states you can probably run it via a transform and set the property SETUPEXEDRIVEN=1 and you may try to use setup.exe /a to run an admin install (More info: purpose of an admin install). This will extract all cab files (if any) from the MSI and put the files on a 'network installation location' for use in corporate networks - essentially a smaller MSI with the setup files next to it. I have seen setups that then will allow to be run directly from the MSI - just give that a shot too.
As to the reason why these setups require setup.exe to launch:
- In prior editions of Installshield the Installscript language runtime had to be installed prior to launching an Installscript based MSI. This appears to no longer be the case since Installscript is now run without a runtime.
- The setup.exe is there to install any updates to the Windows Installer Engine (msiexec.exe), and for that to be possible a setup.exe launcher is needed. Such an update is rarely required, and should today be done via Windows Update.
- A number of legacy features, such as being able to access the Internet (!) via the setup.exe (highly undesirable for corporate use), download runtimes and components and extract temporary files are also done via the setup.exe.
- And there are other features too, most of which are undesirable for corporate deployment.
Here is a previous answer from me on a similar issue featuring a link to a PDF with actual sample command lines.