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
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)
Please log in to answer
Posted by:
mekaywe
14 years ago
Posted by:
Johni
14 years ago
Posted by:
mekaywe
14 years ago
Posted by:
ogeccut
14 years ago
Posted by:
mekaywe
14 years ago
Posted by:
bearden3
14 years ago
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.
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
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.
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
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
Posted by:
anonymous_9363
14 years ago
Posted by:
Johni
14 years ago
Posted by:
Johni
14 years ago
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;
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.....[:)]
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;
- 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?
- 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?
- 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
Posted by:
Johni
14 years ago
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
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
14 years ago
A little quote from the AdminStudio 9 help library:
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
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
14 years ago
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.
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
14 years ago
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
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
14 years ago
Posted by:
Johni
14 years ago
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
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
14 years ago
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
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
14 years ago
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
thanks
Posted by:
anonymous_9363
14 years ago
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
14 years ago
Posted by:
pjgeutjens
14 years ago
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
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
14 years ago
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.
so that the conversation will remain readable.