Uninstall of InstallShield Developer can break TestDriven.NET

A few people have had problems with TestDriven.NET after they uninstall InstallShield. It appears that important Windows COM components are removed on uninstall. If you reinstall InstallShield, TestDriven.NET starts working again.

Alternatively you can save the following as a .reg file and open it:

======================================
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00020404-0000-0000-C000-000000000046}]
@="IEnumVARIANT"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00020404-0000-0000-C000-000000000046}\NumMethods]
@="7"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00020404-0000-0000-C000-000000000046}\ProxyStubClsid]
@="{00020421-0000-0000-C000-000000000046}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{00020404-0000-0000-C000-000000000046}\ProxyStubClsid32]
@="{00020421-0000-0000-C000-000000000046}"
======================================

You can read first hand experience of this issue from Joey Calisay. There are more details in the InstallShield knowledge base.

Published Tuesday, October 03, 2006 8:19 AM by Jamie Cansdale
Filed under: ,

Comments

# re: Uninstall of InstallShield Developer can break TestDriven.NET

COM Interface registration is just... broken. Anybody who implements the interface is supposed to register it on install. Registering overwrites any registration that was present before. Anybody who registered it on install is supposed to unregister it on uninstall. That means that if the same interface is ever implemented by more than one product, you're going to have something break. The only safe policy for Interface registry keys is to leave them behind on uninstall unless your product is the only one that ever possibly uses that interface. The same goes for proxy stubs. I've had better luck with TLBs, but even those are scary. This is one thing that .NET got right -- the metadata for an interface is in the FILE (the assembly), which can easily be ref-counted. Anybody know of any reasonable way to deal with COM Interface registration?

Tuesday, October 03, 2006 6:10 AM by Doug

# re: Uninstall of InstallShield Developer can break TestDriven.NET

thanks for the immediate response jamie.

Tuesday, October 03, 2006 6:27 AM by jokiz

# re: Uninstall of InstallShield Developer can break TestDriven.NET

Thanks for this, it fixed it for me.

Now if I could just get that Sonic Update Manager to shut up about um.msi.. :)

Wednesday, July 15, 2009 12:11 PM by Josh

Leave a Comment

(required) 
(required) 
(optional)
(required)