Case matters in ALL properties. The only place in conditions where case does not matter are the keywords (e.g. NOT/AND/OR can be any case).
The last number is ignored when used in the Upgrade table (where the comparison is made with the ProductVersion value), but that table is completely ignored when using small updates/minor upgrades (such as when using MSP) unless you use your own custom action to parse that table (in which case you can do whatever you want). No other version number parts are ignored (file versions always use all four parts). When using MSPs you can use sequencing, which uses all four numbers (none are ignored) of the patch sequence number, to achieve upgrading and prevent downgrading. Blair -----Original Message----- From: Justin Hull [mailto:justin.h...@assetpoint.com] Sent: Tuesday, November 15, 2011 12:22 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] upgrade install errors Perhaps a final question. Does Upper Case lower case matter when using internal properties. For example: Installed vs INSTALLED UILevel vs UILEVEL I ask because a condition I set up to get around an INI write I wrote as UILEVEL > 3 and it still tried to execute the component on a /passive upgrade. I found that I could use NOT Installed to detect if something was installed before, but does that work for an Upgrade. I installed 8200, I want to upgrade to 8201 with an msp. The company version numbers are in the form x.x.x.x (eg 8.2.0.0). The upgrade is numbered 8.2.0.1, but from what I've read it seems the installer ignores the last number. Justin Hull Office: 864-679-3500 (3413) -----Original Message----- From: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com] Sent: Tuesday, November 15, 2011 9:00 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] upgrade install errors UILevel http://msdn.microsoft.com/en-us/library/aa372096%28v=VS.85%29.aspx Don't forget that in passive mode, the InstallUISequence doesn't run. If there's anything in there setting the properties, it may need repeating in or moving to the execute sequence. Or set a default when the property is blank. During installation, you should "persist" the property values and during repair and other maintenance modes, reread them, if you aren't already. -----Original Message----- From: Justin Hull [mailto:justin.h...@assetpoint.com] Sent: 15 November 2011 13:48 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] upgrade install errors I believe I discovered the issue. In the project I have a section that writes to an INI file details gathered in a normal install (see below). When I perform a full install or on upgrade I select a modify action, the upgrade works fine. However, when I run the msiexec in /passive, I get this error. What I see happening is that the WIX "code" has a variable for section name. In passive mode the one condition that is not checking for blanks allows for the component to be processed yet the section name is blank. I figure a no no in MSI. What I would like to do is alter the condition to determine if I am running in /passive or below (silent) and not execute those components. If anyone knows of a property that I can check please let me know. I believe I can check MsiSetInternalUI. If successful I will post my solution, but I am open to other options. ----------------------------------------------------------------------- <Component Id="IniSettings_SQL" Guid="6468BB66-18C2-43CD-A72B-48050FC1737E"> <IniFile Id="TABWARE.INI.DbItem_sql" Action="addLine" Key="Database1" Name="TABWARE.INI" Section="database" Directory="VersionDir" Value="[DATABASE_DISPLAY1]" /> <IniFile Id="TARGETDIR.INI.DbVendor_sql" Action="addLine" Key="Vendors" Name="TABWARE.INI" Section="[DATABASE_DISPLAY1]" Directory="VersionDir" Value="Sybase" /> <IniFile Id="TABWARE.INI.DBMS_sql" Action="addLine" Key="DBMS" Name="TABWARE.INI" Section="[DATABASE_DISPLAY1]" Directory="VersionDir" Value="ADO.Net" /> <IniFile Id="TABWARE.INI.ServerName_sql" Action="addLine" Key="ServerName" Name="TABWARE.INI" Section="[DATABASE_DISPLAY1]" Directory="VersionDir" Value="[SERVER_NAME]" /> <IniFile Id="TABWARE.INI.Database_sql" Action="addLine" Key="Database" Name="TABWARE.INI" Section="[DATABASE_DISPLAY1]" Directory="VersionDir" Value="[DATABASE_NAME]" /> <IniFile Id="TABWARE.INI.TabVendor_sql" Action="addLine" Key="TabVendor" Name="TABWARE.INI" Section="[DATABASE_DISPLAY1]" Directory="VersionDir" Value="sybase" /> <IniFile Id="TABWARE.INI.DbItem_sql_blank" Action="addLine" Key="'=====" Name="TABWARE.INI" Section="[DATABASE_DISPLAY1]" Directory="VersionDir" Value="=====" /> <Condition>DBTYPE=1 AND INSTALLMODE <> "Repair"</Condition> <CreateFolder /> </Component> <Component Id="IniSettings_SQL_test" Guid="D498FD64-22D3-4103-9CA1-F0E9911F3726"> <IniFile Id="TABWARE.INI.DbItem_sql_test" Action="addLine" Key="Database2" Name="TABWARE.INI" Section="database" Directory="VersionDir" Value="[DATABASE_DISPLAY2]" /> <IniFile Id="TARGETDIR.INI.DbVendor_sql_test" Action="addLine" Key="Vendors" Name="TABWARE.INI" Section="[DATABASE_DISPLAY2]" Directory="VersionDir" Value="Sybase" /> <IniFile Id="TABWARE.INI.DBMS_sql_test" Action="addLine" Key="DBMS" Name="TABWARE.INI" Section="[DATABASE_DISPLAY2]" Directory="VersionDir" Value="ADO.Net" /> <IniFile Id="TABWARE.INI.ServerName_sql_test" Action="addLine" Key="ServerName" Name="TABWARE.INI" Section="[DATABASE_DISPLAY2]" Directory="VersionDir" Value="[SERVER_NAME2]" /> <IniFile Id="TABWARE.INI.Database_sql_test" Action="addLine" Key="Database" Name="TABWARE.INI" Section="[DATABASE_DISPLAY2]" Directory="VersionDir" Value="[DATABASE_TEST]" /> <IniFile Id="TABWARE.INI.TabVendor_sql_test" Action="addLine" Key="TabVendor" Name="TABWARE.INI" Section="[DATABASE_DISPLAY2]" Directory="VersionDir" Value="sybase" /> <Condition><![CDATA[DBTYPE = 1 AND DATABASE_TEST <> "" AND DATABASE_TEST <> " " AND INSTALLMODE <> "Repair"]]></Condition> <CreateFolder /> </Component> ---------------------------------------------------------------------------- - --------------------- Justin Hull Office: 864-679-3500 (3413) -----Original Message----- From: Wheeler, Blaine (DSHS/DCS) [mailto:bwhee...@dshs.wa.gov] Sent: Monday, November 14, 2011 8:15 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] upgrade install errors The MSI documentation says that error 2109 mean "Section missing for .ini action" http://msdn.microsoft.com/en-us/library/aa372835(v=VS.85).aspx There is probably a note higher up in the log that can tell you more detail or at least the exact step -----Original Message----- From: Justin Hull [mailto:justin.h...@assetpoint.com] Sent: Monday, November 14, 2011 1:34 PM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] upgrade install errors I discovered why my upgrade was rolling back. I was getting a fatal error. MSI (s) (80:7C) [16:09:22:691]: Executing op: ActionStart(Name=WriteRegistryValues,Description=Writing system registry values,Template=Key: [1], Name: [2], Value: [3]) MSI (s) (80:7C) [16:09:22:699]: Executing op: ProgressTotal(Total=14,Type=1,ByteEquivalent=13200) MSI (s) (80:7C) [16:09:22:700]: Executing op: ActionStart(Name=WriteIniValues,Description=Writing INI files values,Template=File: [1], Section: [2], Key: [3], Value: [4]) MSI (s) (80:7C) [16:09:22:700]: Executing op: ProgressTotal(Total=11,Type=1,ByteEquivalent=13200) MSI (s) (80:7C) [16:09:22:700]: Executing op: IniFilePath(File=VER_SRVR.INI,Folder=C:\Program Files\Assetpoint\TabWare Xi 8.2\) MSI (s) (80:7C) [16:09:22:700]: Executing op: IniWriteRemoveValue(Section=Release,Key=ApplicationPath,Value=C:\Program Files\Assetpoint\TabWare Xi 8.2\,Mode=0) MSI (s) (80:7C) [16:09:22:701]: Executing op: IniWriteRemoveValue(Section=Release,Key=INIPath,Value=C:\ProgramData\Ass etPoint\TabWare\8.2\,Mode=0) MSI (s) (80:7C) [16:09:22:703]: Executing op: IniFilePath(File=TABWARE.INI,Folder=C:\ProgramData\AssetPoint\TabWare\8. 2\) MSI (s) (80:7C) [16:09:22:703]: Executing op: IniWriteRemoveValue(Section=Help,Key=UserManual,Value=C:\ProgramData\Ass etPoint\TabWare\8.2\TabWare_Xi_User_Manual.chm,Mode=0) MSI (s) (80:7C) [16:09:22:704]: Executing op: IniWriteRemoveValue(,Key=Vendors,Value=Sybase,Mode=0) MSI (s) (80:7C) [16:09:22:704]: Note: 1: 2109 DEBUG: Error 2109: Section missing for INI action. MSI (s) (80:7C) [16:09:22:705]: Product: TabWare Xi 8.201 -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2109. The arguments are: , , I tried looking around the net, but not really sure there was anything definitive out there that explained this issue. I posted before, attaching the log file but is was @ 3mg. I will send project files if needed. Thanks, Justin Hull Office: 864-679-3500 (3413) -----Original Message----- From: Justin Hull [mailto:justin.h...@assetpoint.com] Sent: Tuesday, November 08, 2011 11:38 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Fragments and Patch generation You have a number of options depending on what your constraints are. The easiest upgrade type to write is a major upgrade with an early scheduling of RemoveExistingProducts. It's much more tolerant of mistakes. Could you point me in the right direction for this? I have both Phil Wilson's Windows Installer book and the Wix developer guide, but the section on upgrades is what I'm stuck on. To get past this point in my project is what I am looking for so we can revamp the whole process going forward (I inherited this project). We may look at one file per component, but this is not feasible for this install/upgrade. ------------------------------------------------------------------------ ------------------------ Moving to 1 file per component is another option. That way, the keypath of each component is the file that changes. You can't do this if you've already released because of the rules in what you can do in an upgrade. If you must keep using 1 component per directory then always bump the version number of the component's keypath of the component when changing anything in the component. I believe that's what you meant by changing the initial file in the basedata folder. You would have to do that for each component (and therefore directory) that changes. Adding keypath=yes isn't going to help because its already implicitly set to the default. Also you must not change a component keypath, once set. -----Original Message----- From: justin hull [mailto:justin.h...@assetpoint.com] Sent: 08 November 2011 16:13 To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Fragments and Patch generation Thanks for the input. It got me looking in different directions. I found this link which is interesting for it both advocates the need to break MS rules on one file per component while stating it is the preferred method (sigh). http://makemsi-manual.dennisbareis.com/component_keypath.htm In looking at my wxi files, these are build via paraffin and with the amount of files involved I had paraffin group the files under directory components. Given what you said, could I solve this by just changing the initial file in the basedata folder? Would I have to do that for each sub directory? Would adding keypath='yes' work instead? I will try these options with the remaining wisps of hair I still have on my head. I did see that the base component does not have keypath yet does allow updates of files. <Directory Id="TARGETDIR" Name="SourceDir"> <Component Id="TabWareInstall" Guid="3220C16B-055A-4DD5-9896-31DD7D726D11"> My other plan will be to manually integrate the fragment files into the main project (not what I want to do in the future) to see if that will work. Justin Hull [cid:image003.jpg@01CC9E07.564C9180] Office: 864-679-3500 (3413) From: Peter Shirtcliffe [via Windows Installer XML (WiX) toolset] [mailto:ml-node+s687559n6974692...@n2.nabble.com] Sent: Tuesday, November 08, 2011 10:24 AM To: Justin Hull Subject: Re: Fragments and Patch generation I did a quick diff of the 2 wxs files. The changes appear to be in a component whose keypath doesn't change. I think, by default, in Wix v3+ the first file/registry key in a component is taken to be the keypath unless one is specified explicitly. Unless the component's keypath changes, the component won't be reinstalled. This is one reason 1 file per component is recommended - you don't need to bump the version of unchanged files to get your changed files updated. -----Original Message----- From: justin hull [mailto:[hidden email]</user/SendEmail.jtp?type=node&node=6974692&i=0>] Sent: 08 November 2011 14:01 To: [hidden email]</user/SendEmail.jtp?type=node&node=6974692&i=1> Subject: Re: [WiX-users] Fragments and Patch generation That makes sense. The files are large so I will upload them. Original base install http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/file/n6974 348/T abWareXiTools8200.wxs TabWareXiTools8200.wxs project for full install for patch (upgrade) http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/file/n6974 348/T abWareXiTools8201.wxs TabWareXiTools8201.wxs Patch project 8200 > 8201 http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/file/n6974 348/P atch.wxs Patch.wxs Database fragment http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/file/n6974 348/d atabasefiles.wxi databasefiles.wxi The wixmst differences file is over 2mg so I wont upload it all, but what is happening is that I am getting the files in the main directory updated, but I am not getting the files in the sub folders like Database \Tabware {Files here are updated} \Databases \BaseData {These fiels are not even touched} An example is this one database file. I find it in the diff file in various locations, but it does not update even when I "force" an update: ... -<row sourceLineNumber="C:\dev\TabwareInstalls\databasefiles.wxi*47" sectionId="wix.section.3/wix.section.3" op="modify"><field>file_twdatabase_11</field><field>comp_twdatabase_0</f ield> <field>zzwinact.txt</field><field modified="yes">146866</field><field/><field/><field>512</field><field>48 </fie ld></row> ... -<row sourceLineNumber="C:\dev\TabwareInstalls\databasefiles.wxi*47" sectionId="wix.section.3/wix.section.3"><field>file_twdatabase_11</field ><fie ld/><field/><field/><field>dir_DATABASE_basedata_1</field><field>1</fiel d><fi eld previousData="c:\8.2.0.x\Pro00\DATABASE\basedata\zzwinact.txt">c:\8.2.0. x\Pro 01\DATABASE\basedata\zzwinact.txt</field><field/><field>-1</field><field >0</f ield><field>0</field><field/><field/><field/><field/></row> ... The database files are added to the proejct via the fragment. This is why I am wondering if the fragment, built by paraffin, is not being recognized in the pyro process. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Fragments- and-P atch-generation-tp6972320p6974348.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------ ----- - RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list [hidden email]</user/SendEmail.jtp?type=node&node=6974692&i=2> https://lists.sourceforge.net/lists/listinfo/wix-users SDL PLC confidential, all rights reserved. If you are not the intended recipient of this mail SDL requests and requires that you delete it without acting upon or copying any of its contents, and we further request that you advise us. SDL PLC is a public limited company registered in England and Wales. Registered number: 02675207. Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, UK. ------------------------------------------------------------------------ ----- - RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list [hidden email]</user/SendEmail.jtp?type=node&node=6974692&i=3> https://lists.sourceforge.net/lists/listinfo/wix-users ________________________________ If you reply to this email, your message will be added to the discussion below: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Fragments- and-P atch-generation-tp6972320p6974692.html To unsubscribe from Fragments and Patch generation, click here<http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/templ ate/N amlServlet.jtp?macro=unsubscribe_by_code&node=6972320&code=anVzdGluLmh1b GxAYX NzZXRwb2ludC5jb218Njk3MjMyMHwtMTI4MTg0Nzg4NQ==>. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Fragments- and-P atch-generation-tp6972320p6974879.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------ ----- - RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- - - RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- - - RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- -- RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- -- RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users