MSI Installer Starting Program During Install
Created: 14 Dec 2010 | 5 comments
I have a small MSI that I'm applying a Transform to and when I run them, from commandline, the installer prompts me for some server & port information. If I don't enter it, then the installer fails.
If I just run the MSI, this doesn't happen. It simply installs.
I've checked my User Interface code and there is nothing that stands out that is kicking this off. I've also checked the Execute Immediate & Deferred and I don't see anything there either. So I have 2 questions.
1. Where else can I look or where else could the code be that's causing this?
2. How can I script in the values so that if I run it quietly, I don't have a UI window hanging the install?
I'm using WPS 7 pro.
Thanks for the help.
Discussion Filed Under:
Comments
Not very clear
When you run your small MSI on its own, do you run it silently, or with full UI? If full UI, have you made a note of all dialogs that have user configurable information, even if you accept the default? Have you checked each dialog in dialog editor for any actions that are running within the dialog?
When you run your small MSI with the transform, do you run it silently, or with full UI ? If silently, do you have custom actions gathering the server and port information? If so, do you have any error checking to handle missing or out of band entries?
Or is this a vendor MSI, in which case tell us which one it is.
Have you considered verbose logging of the successful MSI install, and then comparing the log with the equivalent log of a failed install? Since the verbose log will show the value of all properties and the execution of all actions, a comparison of the two installs should show you what might be missing.
Two things to bear in mind:
1. A silent install does not run the UI sequence at all, so you need to provide ALL property values generated during the UI sequence in your transform.
2. Only public properties survive from the UI sequence to the Execute sequence.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
The MSI installs fine
The MSI installs fine silently or with full UI and I have gone through all of the dialogs and this is not one of them. This popup window is the same window that pop ups the 1st time the software is ran.
Either way I run the MSI with the MST, I get the same dialog asking for server info.
This is a vendor supplied MSI.
I have looked at the log files and I don't see anything in it other then the obvious applying of the transform. Now, I should probably let you know that most of the log is in German because it's a German language software, so it's quite likely that I've over looked something.
It seems to me that somewhere there is an execute command that is making this happen but I can't find it.
If it is a vendor supplied
If it is a vendor supplied MSI then unless it is bespoke software written specifically for you, telling us what it is, or looking on Appdeploy may get you the necessary information.
The log file is generated by the windows installer service, which works in the language of the operating system you are running on, as far as I am aware. Are you testing on a German O/S build? If so, logging on a US or UK build of the same operating system should result in English logging information.
Regarding the popup window, I am seeing related information from you on this. From your original posting, it appeared that the popup asking for server and port information was only displayed during installation. In your most recent posting, you are indicating that you get the same popup window on first execution of the app.
This suggests to me that the popup window is not being generated by the installation at all, but is being generated by the application executable. What I would look for now, is a custom action at the END of the InstallExecute sequence (immediate mode) that is launching the EXE. This could also be tied to the final Exit dialog at the end of the installation, which is not generated by the UI sequence.
So if the server/port popup is being generated by the first run execution of the main executable, what you need to do is to run a capture when the popup appears, then enter the desired information to complete the installation setup, and exit the application. Then run the second capture, and see what has changed - most likely in a registry key, but could also involve a file being written to the application folder or elsewhere. In addition, a flag has to be set, again the registry is the most likely location, which tells the app that is does not need to run the popup on subsequent startups.
Once you have that information, you can add it to your transform so that your application is installed in a condition equivalent to having run for the first time and been configured.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
I didn't mean to be secritive
I didn't mean to be secritive about the software. It's called First Businesspost http://www.first-businesspost.com/www/html/homepage.html and it was not written for us. I did search at AppDeploy and a few other sites but I didn't find anything on it.
My build is a US language build from right here in good ole Missouri so I'm not sure what's going on with the log but here's a sample:
******* Action:
******* CommandLine: **********
MSI (c) (F4:38) [10:56:28:754]: Client-side and UI is none or basic: Running entire install on the server.
MSI (c) (F4:38) [10:56:28:770]: Grabbed execution mutex.
MSI (c) (F4:38) [10:56:28:801]: Cloaking enabled.
MSI (c) (F4:38) [10:56:28:801]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (F4:38) [10:56:28:817]: Incrementing counter to disable shutdown. Counter after increment: 0
=== Protokollierung gestartet: 12/14/2010 10:56:38 ===
Aktion gestartet um 10:56:38: INSTALL.
Aktion gestartet um 10:56:38: ProgramFilesFolder.AE716FA1_A915_4206_9C5C_9B8E3CC803BB.
Aktion beendet um 10:56:38: ProgramFilesFolder.AE716FA1_A915_4206_9C5C_9B8E3CC803BB. Rückgabewert 1.
Aktion gestartet um 10:56:38: ProgramFilesFolder.F8F3A2B9_DCCD_4776_BF4F_86B6E292778E.
Aktion beendet um 10:56:38: ProgramFilesFolder.F8F3A2B9_DCCD_4776_BF4F_86B6E292778E. Rückgabewert 1.
Aktion gestartet um 10:56:38: CA_DIR_JAVA_NT.
Aktion beendet um 10:56:38: CA_DIR_JAVA_NT. Rückgabewert 1.
Aktion gestartet um 10:56:38: CA_OLDINSTALL_CHECK.
Aktion beendet um 10:56:39: CA_OLDINSTALL_CHECK. Rückgabewert 1.
Aktion gestartet um 10:56:39: CA_ISJREINSTALLED.AE716FA1_A915_4206_9C5C_9B8E3CC803BB.
Aktion beendet um 10:56:39: CA_ISJREINSTALLED.AE716FA1_A915_4206_9C5C_9B8E3CC803BB. Rückgabewert 1.
Aktion gestartet um 10:56:39: LaunchConditions.
Aktion beendet um 10:56:39: LaunchConditions. Rückgabewert 1.
Aktion gestartet um 10:56:39: WiseSetProfilesFolder.
Aktion beendet um 10:56:39: WiseSetProfilesFolder. Rückgabewert 1.
Aktion gestartet um 10:56:39: FindRelatedProducts.
Aktion beendet um 10:56:39: FindRelatedProducts. Rückgabewert 0.
I find it funny that some of it's in English but most of it's in German.
I'll take your suggestion and check through it. I have applied in my transform a HKCU value that enters that server info already so I guess that I'm putting it in the wrong spot or the custom action isn't recognizing that it's there.
HMM, that log behaviour is
HMM, that log behaviour is very odd. No idea why it's working that way.
There might well be another registry key, or even a file, that is generated to show that the app has been configured, so once you find that, I would hope that the initial config dialog would be suppressed.
There is one more possibility, where the EXE has a command line switch that forces the EXE to display the config dialog regardless of whether config information already exists. If you find the action that starts the EXE in the installer, check if there are any command line switches included, and see what happens if you subsequently start the exe with these switches.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
Would you like to reply?
Login or Register to post your comment.