Hi,

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

Thanks in advance.
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

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
Answered 06/06/2005 by: VikingLoki
Second Degree Brown Belt

Please log in to comment
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?
Answered 06/06/2005 by: VikingLoki
Second Degree Brown Belt

Please log in to comment
0
Yep, thats 100% correct.

It would obviously be a different story if the 'UserProfileStuff' feature had a parent feature of 'Complete'.
Answered 06/06/2005 by: brenthunter2005
Fifth Degree Brown Belt

Please log in to comment
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?
Answered 06/06/2005 by: VikingLoki
Second Degree Brown Belt

Please log in to comment
0
Yes, thats correct.
Answered 06/06/2005 by: brenthunter2005
Fifth Degree Brown Belt

Please log in to comment
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?
Answered 06/06/2005 by: VikingLoki
Second Degree Brown Belt

Please log in to comment
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]
Answered 06/06/2005 by: brenthunter2005
Fifth Degree Brown Belt

Please log in to comment
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.
Answered 06/06/2005 by: GB1
Orange Belt

Please log in to comment
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?
Answered 06/06/2005 by: VikingLoki
Second Degree Brown Belt

Please log in to comment
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...[&:]
Answered 06/07/2005 by: brenthunter2005
Fifth Degree Brown Belt

Please log in to comment
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"
Answered 06/07/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
1
perrrrrrfect..... [8D]

rated.
Answered 06/07/2005 by: brenthunter2005
Fifth Degree Brown Belt

Please log in to comment
0
Thanks Brent![:D]

I've rated yours' too - after all you did all the groundwork which lined up a nice demo opportunity.[;)]
Answered 06/07/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
Bootyful, WiseUser! Excellent example. Clicked out the Rate props.
Answered 06/07/2005 by: VikingLoki
Second Degree Brown Belt

Please log in to comment
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]
Answered 06/07/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
Excellant Stuff. Thanks [:D]
Answered 06/07/2005 by: t_claydon
Senior Yellow Belt

Please log in to comment
0
Ha! Misfire. Must have rated the one above yours, Wise. Brent gets a freebie. [:D]
Answered 06/07/2005 by: VikingLoki
Second Degree Brown Belt

Please log in to comment
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!
Answered 06/07/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
[center][:)] Case Closed.[/center]
Answered 06/07/2005 by: brenthunter2005
Fifth Degree Brown Belt

Please log in to comment
0
WiseUser's sample is excellent. Thank you very much!
Answered 12/02/2005 by: ChrisM
Yellow Belt

Please log in to comment
Answer this question or Comment on this question for clarity