Application repair after upgrade
Hi there!
I have a little strange problem.
I have done a lot of packages and now it's getting time to do some kind of upgrades to them.
In the latest case was it only some registry settings that has been added.
I have maked an "Major Upgrade" in AdminStudio, so it will remove the previous version if it exists.
When I install the package (manually) on a clean PC it works fine, but when I installs it on a PC thats already has the previuos version of application the installation works fine, but when I start the application it want to repair.
I have maked a logged MSI-installation, and noticed that i got "Action: Null" on some components (Redistributables in this case) when I installs it on a PC that has the previuos version.
I get "Action: Local" on the same component when I installs the new package on a clean PC.
The application works after the repair, but it is a little annoying that it needs to repair a component that is supposed to be intalled from the begining.
I noticed in the event viewer that the component mentioned there doesn't even exist in the component table.
I also looked for the GUID of the Redistributales, but they don't either have the mentioned ID.
Thanks!
/Jonas
I have a little strange problem.
I have done a lot of packages and now it's getting time to do some kind of upgrades to them.
In the latest case was it only some registry settings that has been added.
I have maked an "Major Upgrade" in AdminStudio, so it will remove the previous version if it exists.
When I install the package (manually) on a clean PC it works fine, but when I installs it on a PC thats already has the previuos version of application the installation works fine, but when I start the application it want to repair.
I have maked a logged MSI-installation, and noticed that i got "Action: Null" on some components (Redistributables in this case) when I installs it on a PC that has the previuos version.
I get "Action: Local" on the same component when I installs the new package on a clean PC.
The application works after the repair, but it is a little annoying that it needs to repair a component that is supposed to be intalled from the begining.
I noticed in the event viewer that the component mentioned there doesn't even exist in the component table.
I also looked for the GUID of the Redistributales, but they don't either have the mentioned ID.
Thanks!
/Jonas
0 Comments
[ + ] Show comments
Answers (12)
Please log in to answer
Posted by:
nheim
17 years ago
Hi Jonas,
have you checked the sequence # of the 'RemoveExistingProducts' row in the 'InstallExecute' table. Some vendors (like Wise) put this sequence at the very end of table and this removes components which are meant to stay on the system.
If this is the case, put it right before 'InstallInitialize'.
Regards, Nick
have you checked the sequence # of the 'RemoveExistingProducts' row in the 'InstallExecute' table. Some vendors (like Wise) put this sequence at the very end of table and this removes components which are meant to stay on the system.
If this is the case, put it right before 'InstallInitialize'.
Regards, Nick
Posted by:
jonasm
17 years ago
Posted by:
venki_msi
17 years ago
During repair process, just cancel the repair and go to startmenu> run> eventvwr> applications and check for MSI error, it will tell for which component and key file it is going for reapir..
normally upgarde apps go for repair, of below cases
1) becuase of isolation
2) due to font components
3) improper seqencing of Remove existing product..
Thanks,
venki.
normally upgarde apps go for repair, of below cases
1) becuase of isolation
2) due to font components
3) improper seqencing of Remove existing product..
Thanks,
venki.
Posted by:
jonasm
17 years ago
Posted by:
venki_msi
17 years ago
Posted by:
jonasm
17 years ago
Hi there!
It is a captured application with only one feature, and about 60 components in that feature.
There is no empty components (what I can see), and I assume that InstallShield Adminstudio has created correct GUID's for the components. When I look in the component table in Direct Edit mode, the GUID's looks right to me.
/Jonas
It is a captured application with only one feature, and about 60 components in that feature.
There is no empty components (what I can see), and I assume that InstallShield Adminstudio has created correct GUID's for the components. When I look in the component table in Direct Edit mode, the GUID's looks right to me.
/Jonas
Posted by:
jonasm
17 years ago
Btw... It works fine if I uninstalls the old application first, and installs the new one afterwards.
But all users doesn't have the old version, so I can't set it in the package to remove.
And I think it doesn't work either while the installation uses the MSI-engine, so the uninstallation can't run at the same time.
/Jonas
But all users doesn't have the old version, so I can't set it in the package to remove.
And I think it doesn't work either while the installation uses the MSI-engine, so the uninstallation can't run at the same time.
/Jonas
Posted by:
viswakar
17 years ago
Posted by:
nheim
17 years ago
ORIGINAL: jonasm
Btw... It works fine if I uninstalls the old application first, and installs the new one afterwards.
But all users doesn't have the old version, so I can't set it in the package to remove.
Hi Jonas,
that's exactly what the upgrade table is used for: To search for the package to upgrade. If it's there, its being removed by 'RemoveExistingProducts'. You don't have to bother about this, its a built in function.
It seems to me, that you are overwriting parts (components) of the old installation, but not all. If a component with its unique GUID is allready installed by the old app, it wont be installed again. You can check this in the log.
Make sure, the old app gets uninstalled and it should work.
Regards, Nick
Posted by:
Secondlaw
17 years ago
I could be wrong but...
Each component should have a keypath set. You're installing various versions of certain files over those component keypaths. Example...
Package1 contains xxx.dll 1024k v2.2.2
Package2 contains xxx.dll 1037k v2.2.3
Now you click on the shortcut to launch the application. Windows installer says, "wait a minute... xxx.dll (keypath file) is no longer 1024k and v2.2.2, we must repair the application. That is why I believe you're running into this issue.
That is why when you uninstall the old app, the new one installs without issue.
Each component should have a keypath set. You're installing various versions of certain files over those component keypaths. Example...
Package1 contains xxx.dll 1024k v2.2.2
Package2 contains xxx.dll 1037k v2.2.3
Now you click on the shortcut to launch the application. Windows installer says, "wait a minute... xxx.dll (keypath file) is no longer 1024k and v2.2.2, we must repair the application. That is why I believe you're running into this issue.
That is why when you uninstall the old app, the new one installs without issue.
Posted by:
jonasm
17 years ago
Hi there everyone, and thank you for your replys.
This is the message I get in the Event Viewer. As you see there is a component number (that does not exist in my package) and the line saying what key is just empty.
It usually works with this upgrades.
I will take a look on the file replacements, but in this case is it only two files that has been changed and some registry settings has been added.
/Jonas
This is the message I get in the Event Viewer. As you see there is a component number (that does not exist in my package) and the line saying what key is just empty.
It usually works with this upgrades.
I will take a look on the file replacements, but in this case is it only two files that has been changed and some registry settings has been added.
/Jonas
Posted by:
nheim
17 years ago
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.