bvelke
Posts: 67
Joined: Fri Jun 10, 2011 6:36 am

Skipping dialogs

I'm trying to skip the InstallTypeDlg and SetupTypeDlg for users who have an earlier version of the product installed, i.e., for an update. (I can't use "Show Only If" for those dialogs because that option is disabled in the Air theme which I'm using.)

So under the direction of Tech Support, I modified the published events associated with the <Accept> button in LicenseAgreementDlg as follows:
NewDialog.....VerifyReadyDlg.....AI_INSTALL AND ( OLDPRODUCTS )
NewDialog.....InstallTypeDlg.....AI_INSTALL AND ( NOT OLDPRODUCTS )

The <Back> button on the VerifyReadyDlg now has these events:
NewDialog.....LicenseAgreementDlg.....AI_INSTALL AND InstallMode=InstallModeCustom AND ( OLDPRODUCTS )
NewDialog.....FolderDlg.....AI_INSTALL AND InstallMode=InstallModeCustom AND ( NOT OLDPRODUCTS )

There are two problems:
1) The InstallTypeDlg and SetupTypeDlg are not seen, even for a user with no previous version of the product installed. That suggests to me that OLDPRODUCTS always evaluates to TRUE but maybe there's another explanation.
2) The <Install> button on the VerifyReadyDlg now does nothing. The dialog does not change. That button has the standard published events, the only one of which that doesn't start with OutofDiskSpace=1 is:
EndDialog.....Return.....AI_INSTALL AND InstallMode=InstallModeCustom

Sigh. Can someone help me get this to work?

Thanks.

-Bob
bvelke
Posts: 67
Joined: Fri Jun 10, 2011 6:36 am

Re: Skipping dialogs

I have sent copies of my AIP and installer log to support at advancedinstaller dot com. Email subject = "Fwd: Installer test"

Thanks.

-Bob
mihai.petcu
Posts: 3860
Joined: Thu Aug 05, 2010 8:01 am

Re: Skipping dialogs

Hi Bob,

After further analysis, it seems this behavior is more complicated then we anticipated, possibly caused by a bug in Advanced Installer.
It's way past working hours in our time zone and the developers familiar with this part of the code are at home.

Please give us some time to investigate and we'll get back to you as soon as we have a conclusive answer.

Thank you for your patience and understanding.

All the best,
Mihai
Mihai Petcu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
mihai.petcu
Posts: 3860
Joined: Thu Aug 05, 2010 8:01 am

Re: Skipping dialogs

Hello Bob,

I have attached a sample project that demonstrates the functionality you need:
sampleProject.aip
(11.14 KiB) Downloaded 1065 times
All the best,
Mihai
Mihai Petcu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
bvelke
Posts: 67
Joined: Fri Jun 10, 2011 6:36 am

Re: Skipping dialogs

OK, thanks, but, although I see differences in the published events for InstallTypeDlg.Next (which makes no sense to me since this dialog should not even be accessible unless the "AI_INSTALL AND (NOT OLDPRODUCTS)" condition is already met) and a new condition in VerifyReadyDlg.Install (which may explain my problem #2 above), I don't see any difference in LicenseAgreementDlg.Accept to explain my problem #1 above.

Is there some change(s) outside the Dialogs screen which is affecting the results?

Do I need to compare every screen in my project with every screen in yours to determine how your project varies from the previous advice that I was given?

Also, should I infer that the difference in VerifyReadyDlg.Install between my code:
AI_INSTALL AND ( OLDPRODUCTS )
and your code:
AI_INSTALL AND OLDPRODUCTS
is significant? If so, the parentheses are added automatically for me and I don't seem to have the control to remove them.

Thanks.

-Bob
bvelke
Posts: 67
Joined: Fri Jun 10, 2011 6:36 am

Re: Skipping dialogs

Per my message above and as predicted, the VerifyReadyDlg.Install button now works but the InstallTypeDlg and SetupTypeDlg are still skipped, even for a fresh install (i.e., no previous installation).

As in your sample project, the published events for the <Accept> button in LicenseAgreementDlg are still:
NewDialog.....VerifyReadyDlg.....AI_INSTALL AND ( OLDPRODUCTS )
NewDialog.....InstallTypeDlg.....AI_INSTALL AND ( NOT OLDPRODUCTS )

Also as in your sample project, the published events for the <Back> button in VerifyReadyDlg are now:
NewDialog.....LicenseAgreementDlg.....AI_INSTALL AND ( OLDPRODUCTS )
NewDialog.....FolderDlg.....AI_INSTALL AND (InstallMode=InstallModeCustom)

Can someone please tell me what I need to do so this doesn't have to wait until after the weekend?

Thanks.

-Bob
mihai.petcu
Posts: 3860
Joined: Thu Aug 05, 2010 8:01 am

Re: Skipping dialogs

Hi Bob,

Can you please build the sample project I attached? Clearly no previous version is installed. Does it skip InstallTypeDlg and SetupTypeDlg?
Per my message above and as predicted, the VerifyReadyDlg.Install button now works but the InstallTypeDlg and SetupTypeDlg are still skipped, even for a fresh install (i.e., no previous installation).
I am assuming you copied the settings from my sample project onto your own.
In this case please send us that .AIP ( project file ) and a verbose log of the installation to support at advancedinstaller dot com so we can investigate them.

All the best,
Mihai
Mihai Petcu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
bvelke
Posts: 67
Joined: Fri Jun 10, 2011 6:36 am

Re: Skipping dialogs

mihai.petcu wrote:Can you please build the sample project I attached? Clearly no previous version is installed. Does it skip InstallTypeDlg and SetupTypeDlg?
No, it does not.
I am assuming you copied the settings from my sample project onto your own.
You shouldn't have to assume anything. My message here detailed exactly what settings I copied and I asked you what others I may be missing and you haven't answered.

I have also asked you repeatedly what criteria is used to measure the value of OLDPRODUCTS but you haven't answered me about that either.

And I asked you about the significance of parentheses and you haven't answered that either.

So now I'm sending you another .AIP and install log by email...and around and around we go.

-Bob
mihai.petcu
Posts: 3860
Joined: Thu Aug 05, 2010 8:01 am

Re: Skipping dialogs

Hi Bob,
I have also asked you repeatedly what criteria is used to measure the value of OLDPRODUCTS but you haven't answered me about that either.
The OLDPRODUCTS property is a list with the Product Codes of the older versions of your installation package. This property is set only in a package which upgrades another package:
http://www.advancedinstaller.com/user-g ... ation.html
And I asked you about the significance of parentheses and you haven't answered that either.
Parenthesis operators are used in conditional statement to group a part of the statement and separately interpret its result. They also play a priority role similar to basic mathematics calculus.
Unfortunately, our support boundaries don't cover these semantic basics, thus you'll have to learn more from the Internet.
You may also find this article helpful:
http://www.advancedinstaller.com/user-g ... ialog.html
In the case you mentioned there is no need to worry about paranthesis:

Code: Select all

AI_INSTALL AND ( OLDPRODUCTS )
is the same as

Code: Select all

AI_INSTALL AND OLDPRODUCTS
Do I need to compare every screen in my project with every screen in yours to determine how your project varies from the previous advice that I was given?
You only need to make sure the "Next" and "Back" buttons' events from each dialog( LicenseAgreementDlg, InstallTypeDlg, SetupTypeDlg and VerifyReadyDlg ) in my project are the same on your own.

The log file you sent has the OLDPRODUCTS property set which means there is a previous version installation on the target machine. In this case the dialogs are skipped correctly as per implemented functionality.
This means you already have a package with the same upgrade code but older version installed on the target machine.

All the best,
Mihai
Mihai Petcu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
bvelke
Posts: 67
Joined: Fri Jun 10, 2011 6:36 am

Re: Skipping dialogs

Parenthesis operators are used in conditional statement to group a part of the statement and separately interpret its result. They also play a priority role similar to basic mathematics calculus.
Unfortunately, our support boundaries don't cover these semantic basics, thus you'll have to learn more from the Internet.
Oh, for goodness sake! I know what parentheses do. Do you even read the messages that I write? The point was that my project and your project were identical except with respect to the parentheses which I can not change.
Do I need to compare every screen in my project with every screen in yours to determine how your project varies from the previous advice that I was given?
You only need to make sure the "Next" and "Back" buttons' events from each dialog( LicenseAgreementDlg, InstallTypeDlg, SetupTypeDlg and VerifyReadyDlg ) in my project are the same on your own.
Thank you. You would have saved us both a lot of time if you had given that answer five messages ago when I asked the question.
This means you already have a package with the same upgrade code but older version installed on the target machine.
Except that I don't. Every earlier copy of the application has been uninstalled, the folders have been deleted, and none of the registry entries that I created are still present. If the installer is falsely concluding that there is an earlier version installed, then it is because of some registry entry or other remnant that AI made by itself and failed to delete during uninstall.

So I'll ask the question yet again -- what exactly is AI examining in order to set the OLDPRODUCT property?

-Bob
Bogdan
Posts: 2796
Joined: Tue Jul 07, 2009 7:34 am
Contact: Website

Re: Skipping dialogs

HI Bob,

The property OLDPRODUCTS is set by Windows Installer during the execution of the standard action "FindRelatedProducts", when the package is installing. Advanced Installer is not modifying the value of this property.

Regards,
Bogdan
Bogdan Mitrache - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Common Problems”