Im trying to run an exe file from the installer. The file runs fine from the installer. But if I try to run the file based on a condition, I always get an error 2717. Even if I have a simple contition such as VersionNT.

Anyone know why this might be.
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
VersionNT alone isn't a valid condition is it?

e.g VersionNT=400 is...

Even easier, try: NOT Installed

Answered 03/11/2009 by: MSIPackager
Third Degree Black Belt

Please log in to comment
0
what im trying to do is check if older versions of our software is installed, and if it is, run an executable which will remove it. So I have created a property called OLD_INSTALLED and set it to 0. Then I use the AppSearch and RegLocator table to look in the registry. If it finds the key in the registry, it will set OLD_INSTALLED as the value from the registry, and then I want to run the executable. So should the following condition not work? OLD_INSTALLED >< "0".

Im using WISE if that makes any difference [:D]
Answered 03/11/2009 by: kristjan84
Orange Belt

Please log in to comment
0
ORIGINAL:MSIPackager
VersionNT alone isn't a valid condition is it?


Well it can be a valid condition if you are not bothered about the actual contents of the property, just whether it is set or not - the condition VersionNT on its own evaluates to TRUE on a system running any of the NT-family Operating Systems.

ORIGINAL: kristjan84

what im trying to do is check if older versions of our software is installed, and if it is, run an executable which will remove it. So I have created a property called OLD_INSTALLED and set it to 0. Then I use the AppSearch and RegLocator table to look in the registry. If it finds the key in the registry, it will set OLD_INSTALLED as the value from the registry, and then I want to run the executable. So should the following condition not work? OLD_INSTALLED >< "0".

Im using WISE if that makes any difference [:D]



First thing to point out is that if your old version of your software was deployed as an MSI, you should really be using the Upgrade table to achieve the uninstallation.

Assuming your old version of the software was non-MSI, I can see one potential flaw in your proposed method, namely that you are using AppSearch / RegLocator table to see if a key exists in the registry. I believe it is not possible to use the RegLocator table as a check for just a key. Instead, you'll have to search for either a value in the key if there are any available, or if not, the default value for the key.

Error 2717 translates as

'Bad action condition or error calling custom action '[2]'

(as you are no doubt aware), and looking at your condition

[font="courier new"]OLD_INSTALLED >< "0"

it seems OK (though purely through personal preference I use <> rather than ><)

You could always trying removing the OLD_INSTALLED property from the Property Table altogether and just set your condition as

[font="courier new"]OLD_INSTALLED

this property will evaluate to TRUE if your AppSearch successfully found the old version and will be undefined (and by implication, FALSE) under any other circumstances.

If all this fails, then maybe there is a hint in the latter part of the description for Error 2717, namely

[font="courier new"]... or error calling custom action

hmmmm ? [8|]

Regards,

Spartacus
Answered 03/11/2009 by: spartacus
Black Belt

Please log in to comment
Answer this question or Comment on this question for clarity