View Single Post
Old September 9th, 2004, 07:48 PM
jeffg22 jeffg22 is offline
Registered User
Join Date: Jun 2003
Location: , , .
Posts: 8
Thanks: 0
Thanked 0 Times in 0 Posts
Default MSDE Uninstall Doesn't

Hi -

I have a VB.NET application that uses an MSDE database. I'm creating an install program that will install my app and a named instance of MSDE. I'm trying to make the process as easy and foolproof as possible for very nontechnical end-users. My development machine is WinXP Pro.

I'm having trouble with uninstalling MSDE. As most everyone knows, if _anything_ goes awry with an app, during installation or later, a very common resolution step to consider is an uninstall/reinstall. My problem seems to be with MSDE, so I skipped my app and just worked with MSDE. I installed it with the setup.exe provided by MS:

setup.exe /settings "eNP.ini" TARGETDIR="c:\Program Files\TestForMSDE100\MSDE\" DATADIR="c:\Program Files\TestForMSDE100\" SAPWD="Password356" /L*v "c:\Program Files\TestForMSDE100\MSDE356.log"

The referenced eNP.ini file contains:


The install ran through to completion, and the log reported success. I then uninstalled the named instance using Add/Remove Programs from the Control Panel. That process ran without error. But the re-install failed. In the log file, the first occurrence of 'Return value 3' is about 80% down in the file:

Starting custom action UpgDetectBlankSaLogin()
Entering Function MyMsiEvaluateCondition
MsiEvaluateCondition for VersionNT returned TRUE
End Function MyMsiEvaluateCondition
Unable to open service.
Unable to connect as the SQL service is not running.
Ending custom action UpgDetectBlankSaLogin().
Action ended 16:26:37:
UpgDetectBlankSaLogin.2D02443E_7002_4C0B_ABC9_EAB2 C064397B. Return value 3.
Action ended 16:26:37: INSTALL. Return value 3.
MSI (s) (BC:70): Note: 1: 2262 2: Control 3: -2147287038
Property(S): UpgradeCode = {421A321C-2214-4713-B3EB-253F2FBCCE49}
Property(S): SqlDataDir = c:\Program Files\TestForMSDE100Property(S): SqlProgramDir = c:\Program Files\TestForMSDE100\MSDEProperty(S): SqlInstanceName = ENP356
Property(S): SqlSecurityMode = SQL
Property(S): SqlSa...
Property(S): SqlDisableNetworkProtocols = 0
Property(S): VersionNT = 501
Property(S): ALLUSERS = 1
Property(S): ARPNOMODIFY = 1
Property(S): DefaultUIFont = Tahoma8
Property(S): INSTALLLEVEL = 3
Property(S): LIMITUI = 1

I can get around the problem by going through the steps in the Microsoft KB article on manually removing .... But my end-users can't/won't. First, I'm pretty sure that msizap.exe (required by that procedure) can't be redistributed. Second, all I have to do is mention the word 'Registry' -- with or without the necessary standard dire warning -- and my users will say something like 'Sorry. I'm not interested in your app, just tell me how to get it off of my computer.' The answer to that request, of course, again involves the
same 'Registry' and you begin to see how unproductive the conversation will get.

I may be able to code an uninstall routine that will execute many of the 'manually remove' steps by deleting directories and registry entries, but I still can't redistribute msizap.exe. And I'm thinking there's gotta be a better way.

How can I implement what should be a simple uninstall/reinstall process that works ... simply??

Thanks for your help.

- Jeff