/build/static/layout/Breadcrumb_cap_w.png

Custom Action in MST

Hi
I am trying to create a TRANSFORMS from a vendor MSI file that will include some custom action to remove the older version of the same product. I can create the TRANSFORMS (using AdminStudio 9.5 Tuner) but in the TRANSFORMS I do not see "Custom Actions" node.

I just need to add code like "msiexec.exe /x {OLD_GUID} /qb-" but not sure where to add this.

I am a newbie to MSI packaging and this is my first post so please be gentle.

Any help is much appreciated.

thanks

0 Comments   [ + ] Show comments

Answers (29)

Posted by: mekaywe 14 years ago
Brown Belt
0
you dont have to write a custom action to remove older versions of the application.

Add entries in Upgrade Table and MSI will perform the removal of older version during the Installation of your app.
Posted by: Johni 14 years ago
Senior Yellow Belt
0
Thanks for your quick reply but I don't see "Upgrade Table" in Direct Editor
Posted by: mekaywe 14 years ago
Brown Belt
0
I am not sure about using AdminStudio but it will be in one of the Tables
Posted by: ogeccut 14 years ago
Black Belt
0
Is there a GUI view as in wise to just point to the msi you need to upgrade?
Posted by: Johni 14 years ago
Senior Yellow Belt
0
Since I do not have Wise (and never used it) so not sure
Posted by: mekaywe 14 years ago
Brown Belt
0
Check IDE->Media->Upgrades if you have that option
Posted by: Johni 14 years ago
Senior Yellow Belt
0
Nope..don't see that either
Posted by: mekaywe 14 years ago
Brown Belt
0
GUI interface goes this way
Installation Designer -> Media -> Upgrades ... there you have to provide entries under "ISPreventDowngrade" option

Manually you can provides entries in
Direct Editor -> Upgrade
Posted by: bearden3 14 years ago
Purple Belt
0
Hi Johni.

Maybe the vendor MSI doesn't have the Upgrade table? You could look at the MSI with Orca to verify that. I say Orca because if you open it with InstallShield and it doesn't have the table, IS will show that it does have the table but that it's empty; Orca will just show what is there without putting what should be there. I opened a test MSI in Orca, deleted the table and saved it. I opened it in IS and it showed the empty table. I opened it back in Orca and the table isn't there. Nice feature in IS, huh? [8D]

In the Tuner, open the Help and search for "Updating Upgrade Table for an Upgrade". It explains how to create the Upgrade table and to populate it with the data needed.
Posted by: shweta_kar 14 years ago
Blue Belt
0
Inacse the table do not exists, then open a blank template and from Direct Editor export teh Upgrade table then in the
Transform import it and update the required fields in the table such as the Upgrade Code, Min and Max Version , attributes and action property columns

Upgrade Code will contain the Upgrade Code of the application which needs to be upgarded.
Max version: define the version of the application which needs to be upgarded.
Attributes: calculate it using the help file

For Action Property column, define an entry say UPGRADE_1 and use this property as a value in the property table for property SecureCustomProperties.
If the property is not defined, then define it and add that as a value.
Posted by: pjgeutjens 14 years ago
Red Belt
0
Inacse the table do not exists, then open a blank template and from Direct Editor export teh Upgrade table then in the
Transform import it and update the required fields in the table such as the Upgrade Code, Min and Max Version , attributes and action property columns

Upgrade Code will contain the Upgrade Code of the application which needs to be upgarded.
Max version: define the version of the application which needs to be upgarded.
Attributes: calculate it using the help file

For Action Property column, define an entry say UPGRADE_1 and use this property as a value in the property table for property SecureCustomProperties.
If the property is not defined, then define it and add that as a value.


Also, I'm willing to bet that if you have to add the Upgrade Table, you'll have to add the FindRelatedProducts and RemoveExistingProducts actions to your MSI. Unfortunately since I haven't worked with Wise in ages I couldn't give you a step by step on how to do it, but Google might help you there.

PJ
Posted by: anonymous_9363 14 years ago
Red Belt
0
add the FindRelatedProducts and RemoveExistingProducts actionsWise makes this as easy as picking those actions from the 'Standard Actions' tab.
Posted by: anonymous_9363 14 years ago
Red Belt
0
I opened it back in Orca and the table isn't thereI don't know which version of Orca you're using but v5 shows empty tables and, AFAICR, previous versions did, too.
Posted by: Johni 14 years ago
Senior Yellow Belt
0
wow...you guys are awsome....lot of good tips.....I will try them out and will post back the results....thanks
Posted by: Johni 14 years ago
Senior Yellow Belt
0
mekaywe, when I right click the MSI and click on "Edit with InstallShield" it opens up the "Installation Designer" tab/page. The folder structure that I see in the left pane has 8 main folders "Installation Information", "Organization", "Application Data", "System Configuration", "Server Configuration", "Behavior and Logic", "User Interface" and last "Additional Tools"....but I still do not see any "Media" folder, so not sure why.....

bearden3 you are corect, I opened the MSI in IS and I see the Upgrade table which is empty but when I open the same MSI in Orca I don't see the Upgrade table

shweta_kar, while I was trying your tip I came across something new in the help file to create the Upgrade Table in the Transform. And this is what I did which worked for me;

Open the MSI in IS and make changes to the Upgrade Table (like Upgrade Code, VersionMin, Attributes, ActionProperty etc), save the file as MST. By doing this I was able to create Trnsforms with the "Upgrade Table" and without modifying the vendor MSI.
I tested this Transform and it removed the older products.
However, some questions that I have regarding the install and the Upgrade Table are;
  1. The newer version got installed first and then the older version got removed.....I thought it ws going to go the other way. Is it the default behavior? and can I change it?
  2. When I double clicked on the desktop icon of the newer version of the application it opened up the configuration box (with progress bar) but finally it launched the application successfully. If I just install the Vendor MSI file (without removing any older version) it does not launch the configuration wizard/box when opened the very first time. Since my users do not have admin rights on their PCs, I am concerned that it could become a problem. So, how can i avoid this repair/config wizard?
  3. Fot the Attribute I put 257 (I got this number from help file and from googling) and for ActionProperty I put the application name with version number (e.g. APPV5).....but to be honest I have no clue what these values do, so if you can elaborate on that or provide any link that explains these values that would be great

pjgeutjens, I did not have to add anything to FindRelatedProducts and RemoveExistingProducts and I have no clue why I didn't have to


Finally, I just want to thank everyone who helped me in getting this issue resolved.....[:)]
Posted by: mekaywe 14 years ago
Brown Belt
0
change the sequence of "RemoveExistingProducts" sequence number to 750 and your issue which configuration wizard on first lauch will be resolved.

You can find RemoveExistingProducts Custom action in "InstallExecuteSequence" Table in Direct Editor of your Application.
Posted by: Johni 14 years ago
Senior Yellow Belt
0
Thanks mekaywe, it worked like a charm !!!
Posted by: Johni 13 years ago
Senior Yellow Belt
0
Hi
It's me again.

I am running into a small issue with the above mentioned package and here are the details:

Scenario 1:
If I have two older version of a product (e.g XYZ v3 and v4) then installing v5 (by creating TRANSFORMS with "RemoveExistingProducts" sequence number set to 750 "as mekaywe mentioned)....everything works fine....it removes both v3 & v4 and installs v5.

Scenario 2: (new request from the development team)
On a computer that has all three versions installed (v3, v4 & v5)...it should remove only v3 & v4 and only refresh v5 (if needed). So I used the same TRANSFORMS that I created (as mentioned above) but the only thing it does is refresh v5 and does not remove v3 & v4. I tried changing "RemoveExistingProducts" sequence number set to 405 but that did not do anything.

So what should I try.
thanks
Posted by: pjgeutjens 13 years ago
Red Belt
0
A little quote from the AdminStudio 9 help library:

The installer only runs the RemoveExistingProducts action the first time it installs a product. It does not run the action during a maintenance installation or uninstallation.

Since version 5 is already installed, you're running the installation in maintenance mode the second time around, so the RemoveExistingProducts action does not run.
Dunno if there's anything you can do about this, other than explicitly uninstalling and reinstalling V5 if it's found on the system.

PJ
Posted by: anonymous_9363 13 years ago
Red Belt
0
How does Scenario 2 occur if your v5 package removes v3 and v4?

A quick operational note...

The actual sequence number of CAs is irrelevant. What's relevant is their position relative to others. So, for example, you might have only 100 actions in a sequence so setting, for example, REP to 750 (or 405) might not produce the result you expect.
Posted by: Johni 13 years ago
Senior Yellow Belt
0
VBScab, in Scenario2 if v5 is not installed and v3, v4 are installed then it works fine. It removes both versions and install v5.
However, if all three versions all installed then it does not do anything.

pjgeutjens, so if I understood correctly there is no way to remove v3 & v4 if all versions are installed unless I also remove v5 first, correct?

thanks
Posted by: anonymous_9363 13 years ago
Red Belt
0
Yeh, you said. You also assert that v5 already removes v3 and v4, right? So, if installing v5 removes v3 and v4, how do you ever get to a state where v3, v4 and v5 exist on the same machine? By magic?
Posted by: Johni 13 years ago
Senior Yellow Belt
0
VBScab, my appologies for the confusion.....

let me try again.

In my environment I have several computers that have v3 & v4 installed and also several computers that have v3, v4 & v5 installed.

When I advertise the package (via SCCM) to the computers that have v3 & v4 installed...the package removes v3 & v4 and installs v5.

When I advertise the same package to the computers that have v3, v4 & v5 installed the package does not remove v3 & v4 ... All I see is Windows Installer progress bar for some seconds and then it disappears.

Please let me know if I am still not clear....and like always thanks for your help
Posted by: pjgeutjens 13 years ago
Red Belt
0
Johni,

you did understand correctly that the only option would be to uninstall V5 and then reinstall it from scratch on the machines where V3; V4 and V5 are found. I assume that this situation comes from an older version of the V5 package being loose in the field that did not uninstall the older versions yet?

PJ
Posted by: Johni 13 years ago
Senior Yellow Belt
0
pjgeutjens, v5 package in question is the same package that I am trying to install via SCCM. What happened was that some developers/testers went ahead and installed v5 package on their own (and then decided to install v3 & v4 on the same PC for whatever reason)....so now what I am trying to do is to remove v3 & v4 without removing v5 but seems like it is not possible without first removing v3, v4, v5 and then re-installing v5.

thanks
Posted by: anonymous_9363 13 years ago
Red Belt
0
What happened was that some developers/testers went ahead and installed v5 package on their ownAaaaaaaaaaahhhhhhhhhhhh............all is clear.

Developers...[shakes head]. I see this cr@p everywhere. I'd be tempted to just have them sort it out themselves, since they're almost bound to screw something else up at some later stage.

- Go into Group Policy, browse to your developer's group and remove that group's rights to install software.
- Or set permissions on the application share to exclude them. Make them go through Change Control to have stuff installed.
- Or set up an SCCM job to remove their local admin rights.
- Or, to make them really focus on not screwing things up, use SCCM to fire a new build at their workstations.

Whatever, make them learn that there are processes in place for a reason. If you don't, you'll be repeating a simialr exercise a lot sooner than you'd like.
Posted by: Johni 13 years ago
Senior Yellow Belt
0
Ahhhh ... I wish, I wish .... that I could do all that.......but it is an uphill battle that I am never going to win .... if somehow I get approval to take away any of their rights....it would be like "End of the World" for them...... you know what I mean....LOL

take care
Posted by: pjgeutjens 13 years ago
Red Belt
0
Well johni,

since your team, I assume, is in charge of supplying and installing the packages of the applications for your company, you should probably tell them from now on that any machine on which a manual install of your software has been done without your involvement (or that of the officicial software distribution system) is henceforth to be considered UNSUPPORTED and they can basically sort out their own problems.

It's basically the friendly version of telling em to go screw themselves with their playground PCs [:D]

PJ
Posted by: anonymous_9363 13 years ago
Red Belt
0
I and my fellow packagers faced a similar situation at my last client where Desktop Support forgot that the clue to their job function is in their job title and would manually install applications which, under normal circumstances, were installed per-user via Group Policy. Result? Mayhem as soon as the time came to uninstall ready for a new version. Luckily we were supported by senior management in taking exactly the attitude Pieter suggests. It was left to them to explain to the user "Sorry but yes, because I couldn't be ar$ed to do my job properly the last time, you WILL need to wait for about an hour while your rebuilt PC gets its apps installed."
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ