parkerr
Posts: 10
Joined: Mon Feb 12, 2018 8:30 pm

EXE not working

Mon Dec 04, 2023 8:30 am

I have had an Advanced Installer aip project which I have used for a couple of years now with a .net dll for custom actions.
I have always recommended to my clients to use the following command line for a quiet installation

drive:\TACSInstallationNew.exe /I // /l*v install.log DB_TYPE="SQL" LIC_KEY="xxxx1045" PRD_NAME="vcs" PRD_SERVER="TACSDBPRD" TRN_NAME="NODB" TRN_SERVER="NODB" TST_NAME="VCSTest" TST_SERVER="TACSDBTST"

It appears that either this has never worked and my clients didn't let me know or it has stopped working with some upgrade either from AI or microsoft in the windows environment. The deployment is for a VB6 project which is working well in Win 11/10/8/7 x86 and 64 bit environments so that's no the problem the dll written in vb.net back in 2019 and still appears to be fine. The package type is 32 bit and I have attached the aip. The dll when not in quiet mode displays a windows form to allow the user to enter license and database info which is then written to the registry, in quiet mode the dll should detect that the install is quiet and process the info in the variable at the end of the string and if no errors write the details to the registry without the form showing. I have also uploaded the log from the install where it appears that the application is loaded at then a 1603 error which appears to roll everything back.

If someone could help I would be really grateful. I have a Professional License for AI


Cheers
Rob
Attachments
install.log
log from install
(59.13KiB)Downloaded 116 times
TACSInstallationNew50201 - Copy - Copy.aip
aip
(870.48KiB)Downloaded 97 times

Catalin
Posts: 6506
Joined: Wed Jun 13, 2018 7:49 am

Re: EXE not working

Mon Dec 04, 2023 2:10 pm

Hello Rob,

As per the log file, it looks like the "TACSInstallCustomActions" is failing.

There are some messages in the log file which look custom to your custom action that state this:
TACS_ERROR: PRD_SERVER and PRD_NAME are not valid, the installer cannot connect to the database entered, please correct and resubmit
In addition to that, the command line might indeed be wrong.

First of all, after the "setup.exe", I'm not sure what "/I" is for. The EXE does not require any parameter in order to be installed (as oposed to msiexec where you have to pass /i parameter).

The double marker "//" is replaced with the MSI path and then the /l*v will create the log file.

In addition to that, I do not see any silent switches. Normally, the EXE is installed silently as it follows:
setup.exe /exenoui /qn
where /qn is for MSI and /exenoui is for the EXE.

Hope this helps!

Best regards,
Catalin
Catalin Gheorghe - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

parkerr
Posts: 10
Joined: Mon Feb 12, 2018 8:30 pm

Re: EXE not working

Mon Dec 04, 2023 9:09 pm

Thank you so much

I realized after I posted the question that I had actually solved one of my main issues but I had become so bogged down in the detail and I missed. So the /quiet after the // was what I needed to know about and I just wasn't looking at the detail to see that the 1603 was being generated by my dll rejecting the entered data.

It would be great if there was a description of how the exe process works with all the command parameters and how they work in conjunction with the msiexec, for example I think everything before the // is for the exe and everything after the // is for the msiexec. It is confusing, however, because when I was trying to use the command line parameters for the exe such as /exenoui it didnt seem to work so it would be good if all the command line parameters for the exe where better explained and examples and expected results described. Then also a better explanation of how the Custom Behavior properties are passed to the msi and then to the, in my case dll, it appears that they exit in the 'seesion' information accesses via the session class in dot net. The other confusing thing is that the /i or /x after the exe don't appear in the /? help list yet they appear to be the the UI level that I use in my vb.net dll to determine if it is install, uninstall, upgrade etc. I am also presuming that AI creates the exe with msiexec embedded in it so that the command line parameters like /i or /x ar actually for the msiexec and anything after // if for my msi that is also embedded in the exe and therefore I would need more training in how the whole ms msi thing works (here was I thinking I was 20 years old and smart, they keep telling to act my age haha which is ancient)

Thank you again for your patience with my frustrated question that I posted but I hope that some one like me may see this and have a better understanding of how it all works.

Now If I can get Microsoft, and the world, to slow down with the Visual Studio upgrades so I can finish my dot net conversion of the vb6 application.

Merry Christmas to you all.
Rob

Catalin
Posts: 6506
Joined: Wed Jun 13, 2018 7:49 am

Re: EXE not working

Wed Dec 06, 2023 12:43 pm

Hey Rob,

You are always welcome!
It would be great if there was a description of how the exe process works with all the command parameters and how they work in conjunction with the msiexec, for example I think everything before the // is for the exe and everything after the // is for the msiexec.
Here is an article which explains how the EXE works and some details about the available command line parameters:

EXE Setup File - EXE Bootstrapper command line
The other confusing thing is that the /i or /x after the exe don't appear in the /? help list yet they appear to be the the UI level that I use in my vb.net dll to determine if it is install, uninstall, upgrade etc. I am also presuming that AI creates the exe with msiexec embedded in it so that the command line parameters like /i or /x ar actually for the msiexec and anything after // if for my msi that is also embedded in the exe and therefore I would need more training in how the whole ms msi thing works (here was I thinking I was 20 years old and smart, they keep telling to act my age haha which is ancient)
You are indeed right here. The EXE is launched like any other normal EXE. Inside it, there resides the MSI file which the EXE launches using msiexec and the according argument (/i for installation, /x for uninstall and so on).

Merry Christmas to you, too!

Best regards,
Catalin
Catalin Gheorghe - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Common Problems”