Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Repairing an MSI


6 replies to this topic

superManDan

superManDan
  • Full Members
  • 3 posts

Posted 10 June 2009 - 18:37

Hi Everyone,
I need to know more about what happens during a "repair". I have tried searching everywhere on the web and MSDN....i can't really seem to find what I'm looking for.

I'm building an MSI file to install a home-grown application. I'm a systems engineer by trade, but somehow got stuck being the chump in charge of packaging our applications.....enough complaining....the moral of the story is that I'm not a developer, so I'm novice at this.

I really need the application to be "repairable"...the application has many xml config files that the application access during runtime. If a user mucks one of these files up, i would like to be able to "repair" it and completly replace these files and all others....taking the guess work out of what has changed.

I'm having problems with that. Basically, what's happening is that during the "repair", none of the xml files are being replaced....i'm assuming due to the MSI file versioning rules. I've tried putting the RemovePreviousVersions action in the sequence with the thought that it would remove all of the files and solve my problem.....only to find out that during a "maintenance" install, it does not process that action. I've added the "remove files" action and that doesn't work. I've tried many other things and none of them are working for me. The deeper i get into this the more it seems to me that msi's behave totall different during a "maintenance" install or "repair"....and i can't seem to find out any information on this.

Does anyone have any suggestions or any info about what happens during a repair?

VBScab

VBScab
  • Full Members
  • 436 posts

Posted 10 June 2009 - 19:33

It doesn't come much better than this (if you can forgive some tortured spelling and grammar): Essential reading
- Don't know why 'x' happened? Want to know why 'y' happened? ProcMon will tell you.
- Try using http://www.google.com before posting.
- I answer questions only via forums. Please appreciate the time I give here and don't send me personal emails.

superManDan

superManDan
  • Full Members
  • 3 posts

Posted 11 June 2009 - 14:03

QUOTE (VBScab @ 2009-06-10 19:33)
It doesn't come much better than this (if you can forgive some tortured spelling and grammar): Essential reading

Thanks for link. However, that article is more about self healing....I'm looking for info about self repair.

VBScab

VBScab
  • Full Members
  • 436 posts

Posted 11 June 2009 - 14:05

The difference being...?
- Don't know why 'x' happened? Want to know why 'y' happened? ProcMon will tell you.
- Try using http://www.google.com before posting.
- I answer questions only via forums. Please appreciate the time I give here and don't send me personal emails.

superManDan

superManDan
  • Full Members
  • 3 posts

Posted 11 June 2009 - 14:58

QUOTE (VBScab @ 2009-06-11 14:05)
The difference being...?

My understanding of a "self healing" msi is an msi file that has been designed so that when the program is initiated, if any files are missing etc, it will be fixed when the program is initiated (through a shortcut or some other entry point). I could be wrong....but I'm under the impression that you must advertise the installation in order for self healing to work........I could be totally off though. Again, I'm no expert at this stuff. Advertising an application may or may not be an option for some of the environments that will be receiving this msi. With that said, i don't want to rely on self healing as my mechanism for "repairing" a corrupt installation.

My understanding of a "self repairing" msi is an msi file that you can click the "repair" button from Add / Remove Program OR right click on the msi and choose "repair".....which will in turn reinstall the msi in full. Currently this is what i can't get to work....it completes without errors, however, it doesn't replace any non-versioned files.


VBScab

VBScab
  • Full Members
  • 436 posts

Posted 12 June 2009 - 12:10

In fact, they're the same thing. When you click 'Repair' in an ARP entry, the engine goes through the same process as it would if self-healing had been initiated.
- Don't know why 'x' happened? Want to know why 'y' happened? ProcMon will tell you.
- Try using http://www.google.com before posting.
- I answer questions only via forums. Please appreciate the time I give here and don't send me personal emails.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 12 June 2009 - 12:15

I think that "self repair" and "self healing" are typically used for the same thing: an MSI install that hgets automatically repaired when launched through a supported entry point - such as a "Windows Installer shortcut" also known as "advertised shortcut". Note that this is not the same as advertising a product.

Repairing from control panel or from the maintenance type dialog is not self repair, it's a (manual) "reinstall" or "repair".

The behaviour of an automatic repair (self healing) is different than a manual repair/reinstall. The first only reinstalls the affected feature and it's parents, while the latter does a complete reinstall of the whole package.