You may find this useful: 
http://robmensching.com/blog/posts/2007/1/4/doing-a-small-update-or-minor-upgrade-in-msi-use/

_____________________________________________________________
 Short replies here. Complete answers over there: http://www.firegiant.com/


-----Original Message-----
From: Sascha Sertel [mailto:sascha.ser...@gmail.com] 
Sent: Friday, September 5, 2014 4:22 PM
To: General discussion about the WiX toolset.
Subject: Re: [WiX-users] Issue with RemoveFolder and Error 2911 Config.msi

I figured it out, it was never about Config.msi in the first place. When I 
looked at the log file for a successful upgrade I realized it has the same 
Config.msi error message in it, so that's always there and probably also the 
reason why the installer isn't actually failing, I guess MSI just ignores that 
one.

The REAL issue was that I had done (and then forgotten about) something that I 
didn't realize was a big no-no: I removed a file (and its component) from a 
feature in a minor upgrade. After going through the log file line by line I 
finally stumbled over this:

MSI (s) (28:5C) [15:27:36:652]: SELMGR: ComponentId 
'{2D7F4762-05A3-5CCE-A909-C3D03507F96A}' is registered to feature 
'ClientComponentsFeature', but is not present in the Component table.
 Removal of components from a feature is not supported!
MSI (s) (28:5C) [15:27:36:652]: SELMGR: Removal of a component from a feature 
is not supported

And that's the reason why none of the files get updated. So now I only need to 
figure out which is the lesser evil, putting the obsolete file back (as a 0 
byte file) or changing the ProductCode and turning this into a major upgrade.

Thanks for the help!

// Sascha



On Fri, Sep 5, 2014 at 2:02 PM, Sascha Sertel <sascha.ser...@gmail.com>
wrote:

> I thought when it uninstalls the old version it does so by running the 
> cached MSI for THAT version, which also doesn't have CONFIGFOLDER in it?
>
> I've made other changes to the installer before such as adding new 
> files etc. and I've never had issues like this.
>
> // Sascha
>
>
> On Fri, Sep 5, 2014 at 12:18 PM, John Cooper <jocoo...@jackhenry.com>
> wrote:
>
>> Ok, so CONFIGFOLDER is not going to exist on the old installer.  What 
>> is you upgrade scheduling?  To make this work, you probably need 
>> MajorUpgrade@Schdule=afterInstallInitialize or afterInstallValidate.  
>> In an overlapped upgrade, it's going to attempt to remove a 
>> non-existent CONFIGFOLDER.
>>
>> --
>> John Merryweather Cooper
>> Senior Software Engineer | Enterprise Service Applications | 
>> Continuing Development Jack Henry & Associates, Inc.® | Lenexa, KS  
>> 66214 | Ext:  431050 | jocoo...@jackhenry.com
>>
>>
>>
>> -----Original Message-----
>> From: Sascha Sertel [mailto:sascha.ser...@gmail.com]
>> Sent: Friday, September 5, 2014 1:59 PM
>> To: General discussion about the WiX toolset.
>> Subject: Re: [WiX-users] Issue with RemoveFolder and Error 2911 
>> Config.msi
>>
>> As I said it's really simple, here an excerpt from my directory 
>> definitions (all within the same Fragment):
>> 1      <Directory Id="LocalAppDataFolder" Name="LocalAppData">
>> 2        <Directory Id="APPDATAFOLDER" Name="$(var.ProductName)" />
>> 3        <Directory Id="CONFIGFOLDER" Name="$(var.ConfigName)" />
>> 4      </Directory>
>>
>> In the old installer lines 1, 2, and 4 existed already, in the new 
>> version I added line 3. The WiX properties are defined at the top of 
>> the file right below each other.
>>
>> Similarly, I have this section to satisfy ICE64:
>>
>> 1  <Fragment>
>> 2    <DirectoryRef Id="APPDATAFOLDER">
>> 3      <Component Id="CleanupAppDataFolder" Guid="*">
>> 4        <RegistryValue Root="HKCU"
>> Key="Software\$(var.Manufacturer)\$(var.ProductName)" Name="AppDataPath"
>> Type="string" Value="[APPDATAFOLDER]" KeyPath="yes" />
>> 5        <RemoveFolder Id="APPDATAFOLDER" On="uninstall"/>
>> 6      </Component>
>> 7    </DirectoryRef>
>> 8    <DirectoryRef Id="CONFIGFOLDER">
>> 9      <Component Id="CleanupConfigFolder" Guid="*">
>> A        <RegistryValue Root="HKCU"
>> Key="Software\$(var.Manufacturer)\$(var.ProductName)" Name="ConfigPath"
>> Type="string" Value="[CONFIGFOLDER]" KeyPath="yes" />
>> B        <RemoveFolder Id="CONFIGFOLDER" On="uninstall"/>
>> C      </Component>
>> D    </DirectoryRef>
>> E  </Fragment>
>>
>> Like before, lines 1-7 and E were already in the old installer, and I 
>> added lines 8-D for the new directory. If I take the new entries out 
>> the upgrade works without problems, with these new lines the upgrade 
>> fails with that Config.msi error.
>>
>> After doing some more testing I noticed that it looks like ANY change 
>> to the directories compared to the original installer causes this 
>> failure. As a test I removed the directory and RemoveFolder element 
>> that was in the old installer, and I get the exact same failure. Is 
>> this perhaps a version issue? Can I not add/remove directories in a minor 
>> upgrade?
>>
>> Also, I forgot to mention before, this failure doesn't actually make 
>> the installer fail, instead the installer succeeds and ARP shows the 
>> new version as well, but in fact it didn't install and none of the 
>> binaries were replaced due to the error that caused a rollback and 
>> made it not touch anything. To the user it's not immediately clear 
>> that it didn't actually update anything.
>>
>> // Sascha
>>
>>
>>
>> On Fri, Sep 5, 2014 at 11:41 AM, John Cooper <jocoo...@jackhenry.com>
>> wrote:
>>
>> > The database being referred to is probably the MSI itself.  
>> > Problems with RemoveFolder usually occur when the property is not 
>> > defined soon
>> enough.
>> > It must be defined before the RemoveFolders standard action runs.
>> >
>> > What does your authoring look like?  Are you using a property?
>> >
>> > --
>> > John Merryweather Cooper
>> > Senior Software Engineer | Enterprise Service Applications | 
>> > Continuing Development Jack Henry & Associates, Inc.® | Lenexa, KS
>> > 66214 | Ext:  431050 | jocoo...@jackhenry.com
>> >
>> >
>> >
>> > -----Original Message-----
>> > From: Sascha Sertel [mailto:sascha.ser...@gmail.com]
>> > Sent: Friday, September 5, 2014 1:31 PM
>> > To: General discussion about the WiX toolset.
>> > Subject: Re: [WiX-users] Issue with RemoveFolder and Error 2911 
>> > Config.msi
>> >
>> > No, there is no database involved in the installer. I get that the 
>> > error isn't really about the Config.msi directory, but I don't know 
>> > how to solve this.
>> >
>> > As I said, my changes that caused this failure are trivial, a new 
>> > directory and matching RemoveFolder entry, neither of which should 
>> > cause this?
>> >
>> > // Sascha
>> >
>> >
>> > On Fri, Sep 5, 2014 at 7:28 AM, Carter Young 
>> > <ecyo...@grandecom.net>
>> > wrote:
>> >
>> > > Message 1:
>> > > Error 2228 = Database: [2]. Unknown table '[3]' in SQL query: [4].
>> > > Error 2911 = Could not remove the folder [2].
>> > >
>> > > Message 2:
>> > > Error 2318 = File does not exist: [2].
>> > >
>> > > Did you happen to add a Database Table in your update.  I can't 
>> > > tell if Message 1 is coming from the Installer Tables or from 
>> > > your Application.
>> > >
>> > > Config.msi as a folder cannot be removed as a whole as it 
>> > > contains copies of MSI's installed on your system.  You must 
>> > > remove the individual msi's not the folder.  This usually 
>> > > indicates that the uninstall/upgrade process cannot find the name 
>> > > of the msi to uninstall or upgrade.
>> > >
>> > > And Save the following link to your Programmer's Toolbox:
>> > > http://msdn.microsoft.com/en-us/library/aa372835(v=vs.85).aspx
>> > >
>> > >
>> > > Quoting Sascha Sertel <sascha.ser...@gmail.com>:
>> > >
>> > > > I ran into a weird issue that I can't seem to figure out, 
>> > > > hopefully
>> > > someone
>> > > > has an idea.
>> > > >
>> > > > My issue happens only when doing a minor upgrade from an older 
>> > > > version
>> > > to a
>> > > > newer version of my product. The failure lines from the log 
>> > > > look like
>> > > this:
>> > > >
>> > > > MSI (s) (1C:3C) [23:17:21:084]: Note: 1: 2228 2:  3: Error 4:
>> > > > SELECT `Message` FROM `Error` WHERE `Error` = 2911
>> > > > DEBUG: Error 2911:  Could not remove the folder C:\Config.Msi\.
>> > > > MSI (s) (1C:3C) [23:17:21:084]: Note: 1: 2318 2:
>> > > > The installer has encountered an unexpected error installing 
>> > > > this
>> > > package.
>> > > > This may indicate a problem with this package. The error code 
>> > > > is
>> 2911.
>> > > The
>> > > > arguments are: C:\Config.Msi\, ,
>> > > >
>> > > > There was a change to the wxs between those two versions, and 
>> > > > if I undo
>> > > the
>> > > > change then upgrade works fine again. However, I cannot figure 
>> > > > out how to get it so the upgrade works fine with the change. 
>> > > > Fresh install works
>> > > fine
>> > > > with the change, it's only upgrade that fails.
>> > > >
>> > > > The change is pretty trivial: I added a Directory entry to the 
>> > > > list of directories, and a corresponding Component with 
>> > > > RemoveFolder entry. There was another directory on the same 
>> > > > level already for which I did the exact same thing, so it's 
>> > > > basically just copy and paste and changing the directory 
>> > > > identifier. Note that the directory I added is actually created 
>> > > > by the app already (also in the lower version), I only added it 
>> > > > so my custom action can blow the directory
>> > away during uninstall.
>> > > >
>> > > > The closest match to my issue that I could find is this one:
>> > > >
>> > > http://stackoverflow.com/questions/21242963/wix-installer-uninsta
>> > > lls -b ut-not-installs-if-previous-version-is-installed
>> > > >
>> > > > I also have a custom action but it is only run at uninstall. 
>> > > > The log clearly shows that the action was not run because its 
>> > > > condition evaluated to false.
>> > > >
>> > > > Any ideas what might be going on here?
>> > > >
>> > > > // Sascha
>> > > >
>> > > -----------------------------------------------------------------
>> > > ---
>> > > --
>> > > --------
>> > > > Slashdot TV.
>> > > > Video for Nerds.  Stuff that matters.
>> > > > http://tv.slashdot.org/
>> > > > _______________________________________________
>> > > > WiX-users mailing list
>> > > > WiX-users@lists.sourceforge.net 
>> > > > https://lists.sourceforge.net/lists/listinfo/wix-users
>> > > >
>> > > >
>> > >
>> > >
>> > >
>> > >
>> > >
>> > > -----------------------------------------------------------------
>> > > ---
>> > > --
>> > > --------
>> > > Slashdot TV.
>> > > Video for Nerds.  Stuff that matters.
>> > > http://tv.slashdot.org/
>> > > _______________________________________________
>> > > WiX-users mailing list
>> > > WiX-users@lists.sourceforge.net
>> > > https://lists.sourceforge.net/lists/listinfo/wix-users
>> > >
>> >
>> > -------------------------------------------------------------------
>> > ---
>> > --------
>> > Slashdot TV.
>> > Video for Nerds.  Stuff that matters.
>> > http://tv.slashdot.org/
>> > _______________________________________________
>> > WiX-users mailing list
>> > WiX-users@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/wix-users
>> > NOTICE: This electronic mail message and any files transmitted with 
>> > it are intended exclusively for the individual or entity to which 
>> > it is addressed. The message, together with any attachment, may 
>> > contain confidential and/or privileged information.
>> > Any unauthorized review, use, printing, saving, copying, disclosure 
>> > or distribution is strictly prohibited. If you have received this 
>> > message in error, please immediately advise the sender by reply 
>> > email and delete all copies.
>> >
>> >
>> >
>> > -------------------------------------------------------------------
>> > ---
>> > --------
>> > Slashdot TV.
>> > Video for Nerds.  Stuff that matters.
>> > http://tv.slashdot.org/
>> > _______________________________________________
>> > WiX-users mailing list
>> > WiX-users@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/wix-users
>> >
>>
>> ---------------------------------------------------------------------
>> ---------
>> Slashdot TV.
>> Video for Nerds.  Stuff that matters.
>> http://tv.slashdot.org/
>> _______________________________________________
>> WiX-users mailing list
>> WiX-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>> NOTICE: This electronic mail message and any files transmitted with 
>> it are intended exclusively for the individual or entity to which it 
>> is addressed. The message, together with any attachment, may contain 
>> confidential and/or privileged information.
>> Any unauthorized review, use, printing, saving, copying, disclosure 
>> or distribution is strictly prohibited. If you have received this 
>> message in error, please immediately advise the sender by reply email 
>> and delete all copies.
>>
>> ---------------------------------------------------------------------
>> ---------
>> Slashdot TV.
>> Video for Nerds.  Stuff that matters.
>> http://tv.slashdot.org/
>> _______________________________________________
>> WiX-users mailing list
>> WiX-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>
>
------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to