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

Components installed conditionally fail uninstall


3 replies to this topic

aseyer

aseyer
  • Members
  • 21 posts

Posted 22 March 2002 - 23:26

I have an installation that works on 98, 2000, and XP developed in Wise For Windows Installer.  I know this is primarily a Installshield Site, however I was hoping to recieve some insight in this problem.

The application installation has a selection in a dialog box to install the application for Condition A, Condition B, or both(BOTH).  The property (INSTOPT) is by default set to BOTH.  Based on the radio box, the property value is set.  This property will not get set unless I use CONDFIX merge module on 9X machines, as expected.  Based on the value of the property, there is a core set of files, as well as different shortcuts and files based on the selection.

The core set of files have no condition attached.  The Features for this particular aspect listed under the features page as

HDT Application
:
:--(INSTOPT = "A") OR (INSTOPT = "BOTH")
:
:--(INSTOPT = "B") OR (INSTOPT = "BOTH")

Under a Windows 2000/XP installation, no matter which of the three selections is made, a full install/uninstall functions properly.

Under Windows 9X, if the default value of BOTH is used, the installation and uninstallation performs properly.  However, if either A or B is selected, the installation proceeds normally and the proper files are installed.  However during uninstall, the uninstallation proceeds quickly and NO files or registry keys are deleted, and the application no longer appears in add/remove programs.

I have created log files for the two uninstallation, and the difference appears when InstallValidate executes.  

Components in the for INSTOPT=A Uninstallation Log File appears as

Component: spr32d30.dll
   Installed: Local;
   Request: Null;
   Action: Null

Components for the INSTOPT=BOTH Uninstall Log File appear as

Component: spr32d30.dll
   Installed: Local;
   Request: Absent;
   Action: Absent

It appears the component state is not being set properly to be uninstalled correctly.  Any ideas?

Adam Seyer

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 24 March 2002 - 06:14

Do you have any information what the CONDFIX merge module includes or does? I suspect that it might be related.
Is spr32d30.dll in one of the conditionless features, or in which of the conditioned features?

BTW this not an official InstallShield forum, nor is it limited to InstallShield. It just happens that most of the people here are using InstallShield, but there are also many Visual Studio Installer/Orca and also some Wise users here, and everyone is welcome!

aseyer

aseyer
  • Members
  • 21 posts

Posted 02 May 2002 - 22:50

Sorry for the long delay in response. The problem is now reolved.  The solution was obtained by splitting the conditions into two seperate features, along with the base third.  It appears to only occur when there are two DIFFERENT conditions listed under the same feature on 9x machines.  Having one Condition/no condition on various files within the same feature works flawlessly.  However, when two different conditions (and no condition) are contained within one feature, MSI seems to "freak out".  CONDFIX from Wise had no impact on this problem.

Wise's response follows:

I was able to work this WSI/MSI that has the zero-byte files, thank you for taking the time to create and send those in.  I was able to reproduce the problem on Windows 98.  I spent quite a bit of time trying to find the cause of this behavior.  In the Windows Installer SDK there is a page entitled "Removing Stranded Files" that you should be able to find if you search for that title.  This page discusses the various reasons why files may remain on the system after uninstall.  There are six reasons listed, and I thoroughly went through and found that none of these six reasons were the cause of these files remaining on the system.  After further testing I found that the REMOVE property was being set to ALL, therefore all of the features and components should have been removed.  Yet and still several components from you MSI that were still registered under the HKLM\Software\Microsoft\CurrentVersion\Installer\Components key and present on the system.  I have checked with my colleagues and we cannot think of any other reason that these components would remain on the system.  All of these circumstances combined with the fact that this behavior is inconsistent because it only occurs on Windows 98 leads me to believe that this may be an issue with the Windows Installer Service itself.

Fortunately, I have found a way to work around this problem.  It seems to only be an issue with Windows Installer evaluating conditions on the components during the uninstallation process.  In your .WSI/.MSI the conditions set based on the INSTOPT property are set at the component level.  What I have done is removed all of the conditions based on this INSTOPT property from the Components Table.  I then created two new features named Condition_One and Condition_Two and added the respective components into these features and removed them from the Application feature.  I then used the Condition Table to place those same conditions on these two new features.  I ran this MSI on Windows 98 and it install and uninstalls fine now when selecting Conditon_One or Condition_Two only



EugeneS

EugeneS
  • Members
  • 10 posts

Posted 17 May 2002 - 20:11

Hi Adam,
I have a similar problem on with my installation on Win98. But my installation is Install Shield based. Could you tell me where I can get CondFix merge module besides buying whole software package from Wise?
Thank you very much.
Eugene
EugeneS