cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Hi all,

One of the packages I've created gets Error 1404. Could not delete key \SOFTWARE\CLASSES. When I try to remove it. Says I don't have permissions.

The package doesn't even touch that part of the registry and the message doesn't even say what hive it's trying to delete. I've looked all over and couldn't find any reference in the package and don't have that key in any Custom Actions.

Any suggestions?

I found a couple articles saying to do a msiexec /unregister then a msiexec /regserver but that didn't change anything.

Thanks!
Steve
(5) Replies
Try uninstalling with verbose logging to see whats going on..
Here's part of the log file. It doesn't tell me much. Maybe I don't know what to look for.
Here's a good section:

MSI (s) (3C:34) [09:36:31:636]: Executing op: RegOpenKey(Root=-2147483647,Key=SOFTWARE\Microsoft\Office\Excel\Addins\Hyperion.CommonAddin,,BinaryType=0)
MSI (s) (3C:34) [09:36:31:636]: Executing op: RegRemoveValue(Name=LoadBehavior,Value=#3,)
MSI (s) (3C:34) [09:36:31:652]: Executing op: RegRemoveValue(Name=CommandLineSafe,Value=#0,)
MSI (s) (3C:34) [09:36:31:652]: Executing op: RegRemoveValue(Name=FriendlyName,Value=Hyperion® Smart View for Office,)
MSI (s) (3C:34) [09:36:31:652]: Executing op: RegRemoveValue(Name=Description,Value=Hyperion® Smart View for Office,)

Here's the error section:
MSI (s) (3C:34) [09:36:31:652]: Executing op: RegOpenKey(Root=-2147483647,Key=SOFTWARE\Classes,,BinaryType=0)
MSI (s) (3C:34) [09:36:31:652]: Executing op: RegRemoveKey()
MSI (s) (3C:34) [09:36:31:652]: Note: 1: 1404 2: 3: 5
MSI (s) (3C:34) [09:36:35:559]: Product: Hyperion Smart View v9.3.1 -- Error 1404.Could not delete key \SOFTWARE\Classes. System error . Verify that you have sufficient access to that key, or contact your support personnel.

MSI (s) (3C:34) [09:36:35:574]: Executing op: RegOpenKey(Root=-2147483646,Key=SOFTWARE,,BinaryType=0)
MSI (s) (3C:34) [09:36:35:574]: Executing op: RegRemoveValue(,,)
MSI (c) (F8:E0) [09:36:31:668]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

Error 1404.Could not delete key \SOFTWARE\Classes. System error . Verify that you have sufficient access to that key, or contact your support personnel.

I can't find a reference anywhere in my msi that refers to SOFTWARE\Classes.

Thx
I repackaged the application and now I don't get the error message. I have no idea how that got in there but now it's gone ???????
Hi Steveo,

Sorry I didn't post sooner on this--I've been very busy lately and have been on haitus from the forums.

What you're seeing sounds like a classic issue with COM Extraction in InstallShield. Basically, one self-registering file in hundreds or thousands will for some unknown reason try to touch a high-level key in the registry, and COM Extraction takes that to mean that it created that key, and thus you end up with a Registry table entry for it that tries to remove the whole key during uninstall.

Basically, this can cause all sorts of weird things during uninstall. And, recently, Macrovision released a fix for newer versions of InstallShield that implements registry key filtering for COM Extraction, along with information on how to work around the issue if you don't have a newer version that the fix can be applied to. You can find this here:

HOTFIX: COM Extraction Causes System Corruption during Uninstall
http://support.installshield.com/kb/view.asp?articleid=Q113345

If you have the old package lying around, I'd give it a go and see what you're able to find. I suspect that the '*' entry belongs to a particular file, and that a brand new project with that file set to COM Extract will reproduce the issue.
Thanks for the suggestion Cary but I deleted the the old package as it didn't take much to re-create it. I will keep that in mind if I ever see that again.

Thanks again!
Steve