Hi, for starters I am using "InstallShield Express" version 4. Service pack 1.

I am developing a very complex application including many different kinds of exe's and files. One of my applications is a visual basic program, complied into an exe. Each time this exe launches.. it scans my entire directory looking for a broken installation. According to this page:
http://msdn.microsoft.com/en-us/library/aa302344.aspx

there are 3 entry points for application resiliency.. I believe mine is triggered through "COM Advertising".

I WANT TO TOTALLY DISABLE this application resiliency feature. When it gets triggered, the standard "preparing to install..." box pops up, but it also triggers my custom uninstall action!! This ends up deleting files and NOT fixing anything.

Is there a simple solution to disable this application resiliency feature? Thank you!!

-ben
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
"but it also triggers my custom uninstall action!!"
If you only want the custom action to run on install then set a condition for the CA as: NOT Installed

You can minimize self-healing from occurring by:
1. not using "COM Advertising" for the COM-component (ex. DLL) by putting the registration information directly in the Registry table
2. use non-advertised shortcuts
3. design your package for your desire
Answered 02/18/2010 by: AngelD
Red Belt

Please log in to comment
0
I found the solution!!! It's in this thread:
http://itninja.com/question/faulttree-101215&mpage=1&key=repair



If you want to COMPLETELY DISABLE SELF HEAL, APPLICATION Resiliency, Advertising, etc.. Simply get Orca: http://www.technipages.com/download-orca-msi-editor.html

Right-click your msi-> "Edit with Orca".
Click component in the left pane.
In the right pane, remove value in the ComponentId column (the 2nd one)
SOLVED!!


The only downside is that any files without a ComponentId will not be uninstalled!
Answered 02/18/2010 by: mosaic
Yellow Belt

Please log in to comment
0
Why don't you put a condition on your custom action to only run on uninstall?
Answered 02/19/2010 by: t_claydon
Senior Yellow Belt

Please log in to comment
0
I actually did put in that condition for my custom action. But guess what? It's broken in InstallShield 4.0. Also I CANNOT have self heal for this install project. My program creates and deletes folders so this is not an option. If you have an idea of how i can disable self heal other than using ORCA, please let me know.

@AngleID - How can I disable Com Advertising if I have a simple VB program written in Visual Basic 6? I looked through the menu's but I cannot find such an option. Is there a program I can use to fix the exe? Thanks.
Answered 02/19/2010 by: mosaic
Yellow Belt

Please log in to comment
0
My final solution is this:
I went to (1) Organize Your setup - Features
I made the VB6 program have it's own feature.. it also has a parent feature which i just named container. All features in this view are set to
"Disallow Advertise".
I removed everything from the "Always Install" feature and put them in a feature called everything. This feature also has a parent container. With my project configured like this, I have no issues with Self healing
Answered 02/19/2010 by: mosaic
Yellow Belt

Please log in to comment
0
Boy, do you need to do some reading about Windows Installer! :)

Your EXE has NOTHING to do with COM advertising. Whatever you used to capture its installation (presumably InstallShield) has seen the COM information in the EXE (or its support DLLs, more likely) and added it to the installing MSI.
Answered 02/19/2010 by: VBScab
Red Belt

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