/build/static/layout/Breadcrumb_cap_w.png

Self Healing Documentation

Hi,

I'm looking on documentation that can explain exactly how the self healing process works.

Thanks in advance.

0 Comments   [ + ] Show comments

Answers (20)

Posted by: WiseUser 15 years ago
Fourth Degree Brown Belt
7
Here's a really simple demo I just made up that some people may find interesting?

You'll need a copy of "Setacl.ocx" which you can download from here:

http://setacl.sourceforge.net

1) Copy "Setacl.ocx" to "C:\Windows\System32\" (or where ever your "System32" folder is).

2) Register it there using one of the following methods:

a) Regsvr32 %SystemRoot%\System32\Setacl.ocx
b) Rundll32 %SystemRoot%\System32\Setacl.ocx,DllRegisterServer

3) Create a new MSI project, and add "Setacl.ocx" to the "SystemFolder" ("System32").

4) Compile your project and check that the advertising information has been added correctly (within the same component as the "Setacl.ocx" file).

5) Install your new MSI per-machine (ALLUSERS=1).

6) Create a ".vbs" script on your desktop with the following content:

Set oTest = CreateObject("SETACL.SetACLCtrl.1")
Set oTest = Nothing

7) Run the script (double click) - nothing should happen.

8) Delete "C:\Windows\System32\Setacl.ocx".

9) Run the script again. Assuming you've done everything right, it should self-repair.

For those who might be interested, the relevant registry key that enables this behaviour is the following multistring key:

"HKCR\CLSID\{17738736-8831-4197-ACA5-A740A050B4CF}\InprocServer32\InprocServer32"
Posted by: brenthunter2005 15 years ago
Fifth Degree Brown Belt
2
With regards to your .OCX example, Internet Explorer needs to "see" this OCX installed on your computer by way of ProgID and/or CLSID (depending on the control) and therefore these can be included in your MSI in the Advertising tables (ProgID and Class tables) and be "entry points".

If the MSI were authored correctly using the Advertising tables, when needed Internet Explorer would initiate the "installation" or "repair" of your MSI containing the OCX file etc.

[&:]I really hope I explained it properly there...[&:]
Posted by: brenthunter2005 15 years ago
Fifth Degree Brown Belt
1
perrrrrrfect..... [8D]

rated.
Posted by: VikingLoki 15 years ago
Second Degree Brown Belt
0
This should help. Found the link in Wise KB, article 1389 (http://www.wise.com/kbarticle.aspx?articleno=1389). It doesn't appear to be on the Wise site though. Mystery solved by an unknown source??

http://209.104.132.210/filelib/KB/WindowsInstallerRepair.pdf
Posted by: VikingLoki 15 years ago
Second Degree Brown Belt
0
I'm not sure if this documentation is entirely correct, or complete. Everyone, read the doc above and see what you think about the following scenario.

Suppose you have 2 features, Complete & UserProfileStuff, both top level features. All advertised shortcuts, exe & dll's are in the Complete feature. UseProfileStuff contains a few files in [CurrentUserProfile]\Application Data and a few registry keys in HKCU (Not policy keys).

According to this doc, component keypaths of UserProfileStuff would not be checked because the advertised shortcuts would only cause Complete to be checked and since UserProfileStuff is not its parent, it's not checked. The only time UserProfileStuff would be checked is if Complete is found to be corrupted. That can't be right... could it?
Posted by: brenthunter2005 15 years ago
Fifth Degree Brown Belt
0
Yep, thats 100% correct.

It would obviously be a different story if the 'UserProfileStuff' feature had a parent feature of 'Complete'.
Posted by: VikingLoki 15 years ago
Second Degree Brown Belt
0
In that scenario, would the UserProfileStuff feature be repaired if something in the Complete feature references a component of UserProfileStuff and it's not present?
Posted by: brenthunter2005 15 years ago
Fifth Degree Brown Belt
0
Yes, thats correct.
Posted by: VikingLoki 15 years ago
Second Degree Brown Belt
0
Ah, ok. That's why it works.

This doc's flowchart starts with "Entry point is invoked." What exactly can be an "entry point"? I'm only aware of shortcuts or file extensions, is there anything else?
Posted by: brenthunter2005 15 years ago
Fifth Degree Brown Belt
0
From the SDK:
Shortcuts and their icons. Extensions and their icons specified in the ProgId Table. Shell and command Verbs registered underneath the ProgId key. CLSID contexts and InProcHandler. Install-On-Demand through OLE is only available programmatically through CoCreateInstance (C/C++) and CreateObject or GetObject (Visual Basic).

So 95% of the time 'entry points' are basically just shortcuts and file associations...... [:D]
Posted by: GB1 15 years ago
Orange Belt
0
ORIGINAL: VikingLoki

Ah, ok. That's why it works.

This doc's flowchart starts with "Entry point is invoked." What exactly can be an "entry point"? I'm only aware of shortcuts or file extensions, is there anything else?



Any form of advertising information.
Posted by: VikingLoki 15 years ago
Second Degree Brown Belt
0
Thanks Brent, that gives me a direction.

Hmmm... I can think of two situations where I'm packaging without defining entry points. That would be an .OCX supporting a web app, and something like Oracle Client which is called by other apps. Looking over the Windows Installer docs, advertising ProgID, ClassID, verbs, etc just looks like a bunch of puzzle pieces. I'm not seeing the big picture. Would either of these be applicable as an entry point for the two examples above?
Posted by: WiseUser 15 years ago
Fourth Degree Brown Belt
0
Thanks Brent![:D]

I've rated yours' too - after all you did all the groundwork which lined up a nice demo opportunity.[;)]
Posted by: VikingLoki 15 years ago
Second Degree Brown Belt
0
Bootyful, WiseUser! Excellent example. Clicked out the Rate props.
Posted by: WiseUser 15 years ago
Fourth Degree Brown Belt
0
Thanks VikingLoki! It's really nice when people come back and say they liked something you've posted.[;)]

When you said "Clicked out the Rate props", did you mean that you rated my post? If so, I'm wondering why my score hasn't increased? I see Brents has though... you didn't did you??[:D]
Posted by: t_claydon 15 years ago
Senior Yellow Belt
0
Excellant Stuff. Thanks [:D]
Posted by: VikingLoki 15 years ago
Second Degree Brown Belt
0
Ha! Misfire. Must have rated the one above yours, Wise. Brent gets a freebie. [:D]
Posted by: WiseUser 15 years ago
Fourth Degree Brown Belt
0
Thanks VikingLoki... I figured that's what had happened!

I was considering hanging up my "posting boots" this morning after an "unpleasant" experience with a junior member of this site. Between you and Brent, you've managed to restore my score and my faith!
Posted by: brenthunter2005 15 years ago
Fifth Degree Brown Belt
0
[center][:)] Case Closed.[/center]
Posted by: ChrisM 15 years ago
Yellow Belt
0
WiseUser's sample is excellent. Thank you very much!
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