#1
|
|||
|
|||
How to disable MSI Windows Installer auto-repair ?
You probably all know the "MSI" installers from Microsoft, which you need to use in order to get your "Windows compatible" logo for your software.
I installed some software coming as MSI installation package. It created me 8 shortcuts directly in the "Start Menu". Since I didn't want to have the shortcuts there, I created a subfolder in my start menu and moved the shortcuts there. When I started the program, the MSI installer started, asked me to insert the CD and when I did, it "repaired" the "damaged" software by installing it all again (copy 480 MB from CD and create 8 new shortcuts directly in the start menu). I played this stupid game several times and it turned out that as soon as you delete or move any shortcut in the start menu the software is considered as "damaged" and must be "repaired". I can cancel the installer as soon as it starts up, but then it tries again and again to start up and the software never launches. Since not all MSI installed software has this problem, my question is if anybody knows how to disable this useless function since I don't want half of my screen filled with "visit website", "show help", "show readme", "show tutorial", "uninstall", "search for updates", etc. shortcuts every time when I open my start menu. (marking them as "hidden" is no possibility since the MSI installer considers this as "damaged" too) Last edited by Kerlingen; 01-20-2005 at 20:30. |
#2
|
||||
|
||||
Extract
i suggest Use MSI files extraction utility 0.2 for extract files from Setup file and Install It Manually
|
#3
|
|||
|
|||
Good idea NimDa2k, but I forgot to be more specifield in my first post. I can't yet download attachements, but I have something called MsiEx 0.2 too, so I think you have attached the same file.
The problem is not to get the files, but to install the program. All of the program's files are uncompressed on the CD and the MSI file contains no other files and is just 2.3 MB big. The problem is that the program doesn't run without proper installation, which sets up many registry entries, installs some video codecs, a kernel mode driver and does the license activation over internet. (btw. the software I have the problems with is the driver CD for a video capture board) I don't want to call the "hotline", since I doubt that they will tell me something else than "don't delete the shortcuts" and I would have to pay at least 20$ for it. |
#4
|
||||
|
||||
I believe your problem is related to what is called a KEYPATH in the MSI. Each component in an MSI requires a Keypath. In your case the shortcut seems to be set as a keyfile. The Windows Installer Service is trying to verify the availability of the keypath element and if it cannot find it it will Repair itself. This will hopefully fix your problem.
First check your event log. In XP it's Start-> Performance and Maintenance -> Administrative Tools-> Event Viewer And for NT Start -> Settings -> Control Panel -> Administrative Tools -> Event Viewer. When you have your event viewer open select Application Log and find the application that is giving you trouble. An easier way can be to right click on application log and clear it. Then run the program and let it give you the repair error. Then check the log. doubleclick on the logged event and you should see something to the following Event ID: 1004 Description: Detection of product "{4ED0C75A-8BC5-4520-B9C7-76968FD5677F}", feature "Test", component "{A7B09747-E527-4E1B-AE51-323CD636210F}" failed. The resource "C:\Progam Files\InstallSite\test.exe" does not exist. The {A7B09747-E527-4E1B-AE51-323CD636210F} listed after component is called the Component Id. Copy that down. You can now close event viewer. Okay, now you need to find Orca. It is included with the Windows Installer SDK. Or google for Orca.msi and look a few pages in to find a link. When you have Orca use it to open up your MSI install file. On the left hand side of the program you see a list of tables. Scroll down and select "Component". You'll now see, in the right side, a table of components and their information including compenent id's. Find the component id's that were giving you trouble and select the KEYPATH cell. Delete the information in the keypath cell for all the component ids that were giving you trouble. Save your MSI. Now uninstall and reinstall the software using the new MSI. You should not have anymore problems. I hope that fixed your problem. If not: Sorry for such a long post. Last edited by gabri3l; 01-21-2005 at 10:50. |
#5
|
|||
|
|||
@gabri3l:
I did as you suggested. The Event Log contained the warning messages telling me that "C:\Documents and Settings\All Users\Start Menu\..." was not available. Then I copied the Component Id, installed ORCA.MSI from the PlatformSDK, opened the installation MSI and found the Component Id in the component section. But the KeyPath is an empty value. I can't delete anything from it since there is nothing in it. I guess this is since the shortcuts are not already packed into the MSI, but only created at installation time. Then I tried to remove the whole row. The MSI gave me an internal error when I started it. I searched for other occurences of the Component Id, but I didn't find it anywhere else. Then I searched for the names of the Start Menu entries and found them in the Shortcuts category. I deleted them all and saved the MSI file and installed the software again. This time I had no shortcuts in my Start Menu. I created a shortcut on my own and started the software. This time I was in an endless loop of "repairing" the "damaged" software. Which I only could stop by "burning" them with LordPE, since my Task manager didn't allow me to terminate the processes. Then I tried to find some occurences of the files the shortcuts pointed to, but I didn't find anything which I would classify as "this is it" (I don't know much about MSI). How does the auto-repair feature of MSI file work anyway? If I execute "TEST.EXE", does Windows check if it is a MSI installed application and launch the installer to check it or must "TEST.EXE" call some MSI APIs itself to check if it needs to be repaired? I bet disabling this would decrease startup time of MSI installed software. |
#6
|
|||
|
|||
Try this:
http://desktopengineertraining.com/msirestrictrun They also have a few other tools for use with MSI files that you may find useful. |
#7
|
||||
|
||||
It's hard to diagnose the problem without the software in front of me, but you can try opening the MSI in orca and selecting the PROPERTY cell on the left hand side. Then in the cells to the right add a new row. In the new row under property type DISABLEADVTSHORTCUTS and set the value cell to 1. Then install the software.
The problem is that when a program using MSI installs it registers itself with Windows Installer Service. The service then controls certain program properties. You cannot stop a certain program from using the Repair option. However, you can disable the service all together by opening up your registry and going to HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer (you may have to create this folder) and Create a new DWORD value, or modify the existing value, called "DisableMSI" and set it according to 2 = disabled. Exit your registry, you may need to restart. This will almost definately fix your repairing issues. The only problem you will face is that this disables the MSI service for all applications. Last edited by gabri3l; 01-22-2005 at 08:34. |
#8
|
|||
|
|||
@gabri3l:
Thank you for all your work you invested in my problem. Finally the DISABLEADVTSHORTCUTS trick worked and solved my problem. Now I can open my start menu again without falling off my chair. :-) @ee45678: Thank you for the link, but I didn't find anything which would help me in my current situation there. But perhaps I will need it later again. |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Windows Update Disable and Enable | mdj | General Discussion | 0 | 03-05-2018 23:45 |