cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
BizerbaDev
Level 6

Chained MSI setups: COM-Servers not registered when executed with 'No UI'

Hi!

I ran into an very odd issue with Chained MSI packages. I ended up creating a test setup that basically only installs a dummy file an then calls two chained msi setups. I've added these chained setups in the 'Releases' view. These two setups are support programs (sub products) of my company that are installed with all the major software products (silently in the background) and there is one special thing about them: They both register one of their dlls as a COM-Server. This is done the regular way in the the 'Advanced Settings => COM Registration' of the corresponding components. So there is nothing fancy about those chained setups and they always worked whenever they were called by old InstallScript setups or from some handwritten install wizards.

Now this is the first time I'm creating a BasicMSI setup for a major product and therefore the first time that I had to use the 'Chained MSI packages' feature in order to get sub products installed along side. As I stated earlier I created a test setup first that basically only installs the chained MSIs silently.

- My first try was to install the chained MSI packages with a UI in order to see if they are called correctly. And indeed everything works fine except for the fact that the UAC prompts me for each setup, but the results are nice: The test setup itself and the two sub setups are installed correctly and everything works as expected.

- My second try was to set the UI of the chained setups to 'No UI'. In this case the setup gets cancelled. When checking the log file of the setup the reason becomes obvious: Missing permission rights.

- My third try then was to set the 'Required Execution Level' of my Setup.exe in my Release to 'Administrator'. In this case the user gets a UAC prompt at the very start of the setup and everything else should from then on already be executed with elevated rights. In this case the main setup and the chained setups install successfully. However after I try to run my applications I notice that the COM-Servers are not registered!!!

I tried it multiple times on different test systems, but the result stays the same: As soon as I set the 'Required Execution Level' to 'Administrator' my chained setups finish successfully, but are actually lacking their COM registrations!

Does anybody have an idea how this is possible?

Regards

Ralf
Labels (1)
0 Kudos
(1) Reply
BizerbaDev
Level 6

OK I'm one stup further now: I found out that the registration of the COM-Servers is basically only done by adding some keys to the Registry. This means if I tell IS to 'Extract COM Data for Key File' then this extracted data is only added to the registry information of the same component. The problem now seems to be that for whatever reasons this registry information is not written to registry in said cases of the chained MSI package installation.

Anybody here that can come up with an idea why this is so?
0 Kudos