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

Disable auto repairing


2 replies to this topic

JoeThompson

JoeThompson
  • Members
  • 80 posts

Posted 06 June 2002 - 16:47

Hi,

After my installation program is run and the product is installed, I notice the following behavior:

I have a shortcut that launches an application. The application has quite an extensive UI which works for the most part. On certain occasions, the UI needs to load a dll that I also install. If I delete that dll, somehow the Windows Installer notices it is missing and automatically starts up and fixes itself providing the CD is available or the setup was copied to the hard drive.

My question is, how do I disable this? I would rather see an error message that says "Can't load xxx.dll".

I am using ISDev 7.02 on W2K.

Thank you,
Joe

Hemamalini

Hemamalini
  • Members
  • 22 posts

Posted 07 June 2002 - 14:01

This completely disables the msi engine including auto repair.

see MsiDocs

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
the value
DisableMsi DWORD 2
turns Msi off
DisableMsi DWORD 0 or absence
turns Msi on

hambone

hambone
  • Members
  • 206 posts

Posted 18 July 2002 - 12:42

as was stated in the previous post this will disable the MSI service including the auto-repair feature.

another way to accomplish this is to remove the MSI Control information from the MSI Registry Database.  remembering that when a msi is installed on a system there are two ( 2 ) basic operations being performed:

1) the application ( read MSI Product ) components are copied to the system
2) the msi control information is written to the MSI Registry Database

if you remove the msi control information from the system but leave the application components then you will have accomplished the task.

To remove the MSI Control Information you can edit the registry and file system manually ( targeting the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer
HKEY_CLASSES_ROOT\Installer
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall]

registry areas and the \WinNT\Installer sub-directory.  

unfortunately in their infinite wisdom ms has decided to complicate things by using a 'translated guid' as the linking mechanism for the various entries in the msi registry database.  additionally they have excluded certain required linking information, notably the component to folders links although this information can be obtained by purusing the cached msi, if available..

all said you can develop an automated mechanism to perform this or use any number of tools to perform the same task: of executing a limited nuclear strike against the msi control info. while leaving the application code behind to fend for itself in the hostile ever changing msi wilderness.

tools i have seen include the MSI ClueanUp Utility provided by MS, the MSICleaner.EXE app. circulating on the net ( doesn't work for me on XP :-(  ),etc...