[wix-users] Silent Upgrade Issue

Ven H venh.123 at gmail.com
Wed Jul 11 19:58:17 PDT 2018


Yes Jacob. I actually create 2 MSIs. But just for posting the code, I
provided the same Product.wxs. I create Upgrade MSI by changing the
Version, Product ID and also the contents of the text and sql files. But,
still it doesn't seem to be working.



On Thu, Jul 12, 2018 at 1:03 AM, Hoover, Jacob <Jacob.Hoover at greenheck.com>
wrote:

> Make 2 MSI's?  You can't have half of one version of a MSI, and half of a
> previous version of the same product.
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf
> Of Ven H via wix-users
> Sent: Wednesday, July 11, 2018 12:43 PM
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Cc: Ven H <venh.123 at gmail.com>
> Subject: [wix-users] Silent Upgrade Issue
>
> I have a Product.wxs file as below.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
>   <Product Id="CACFB702-D5E1-4B27-82AE-C843E6423688"
> Name="SilentInstallSample" Language="1033" Version="1.0.0.0"
> Manufacturer="Silent Installer"
> UpgradeCode="93928386-B083-4E13-BE9F-6272F8339A04">
>     <!--04DCE866-F0B2-45CA-9E7F-032552437436--><!--1.0.0.0-->
>     <!--CACFB702-D5E1-4B27-82AE-C843E6423688--><!--2.0.0.0-->
>     <Package InstallerVersion="200" Compressed="yes"
> InstallScope="perMachine" />
>
>     <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName]
> is already installed." Schedule="afterInstallExecute" />
>     <MediaTemplate EmbedCab="yes" />
>
>     <Property Value="1" Id="MSIUSEREALADMINDETECTION"/>
>     <Property Value="1" Id="MSIFASTINSTALL"/>
>     <Property Value="v" Id="MsiLogging"/>
>     <Property Value="1" Id="MSIENFORCEUPGRADECOMPONENTRULES"/>
>     <Property Value="0" Id="INSTALL_APP" />
>     <Property Value="0" Id="INSTALL_DB" />
>
>     <Feature InstallDefault="local" Description="App Feature Description"
> Title="App Feature" Level="1" Id="AppFeature" Absent="allow"
> AllowAdvertise="no" Display="expand">
>       <ComponentGroupRef Id="AppCG"/>
>     </Feature>
>     <Feature InstallDefault="local" Description="DB Feature Description"
> Title="DB Feature" Level="1" Id="DBFeature" Absent="allow"
> AllowAdvertise="no" Display="expand">
>       <ComponentGroupRef Id="DbCG"/>
>     </Feature>
>   <Binary Id="SetFeatureCADLL"
> SourceFile="$(var.SolutionDir)SetFeatureCA\bin\debug\SetFeatureCA.CA.dll"
> />
>   <CustomAction Id="CA_SetFeature" BinaryKey="SetFeatureCADLL"
> DllEntry="SetFeatures" Execute="immediate" Return="check" />
>   <InstallExecuteSequence>
>     <Custom Action="CA_SetFeature"
> Before="LaunchConditions"><![CDATA[(UILevel <= 3) AND (NOT
> REMOVE~="ALL")]]></Custom>
>   </InstallExecuteSequence>
>   </Product>
>
>   <Fragment>
>     <Directory Id="TARGETDIR" Name="SourceDir">
>       <Directory Id="ProgramFilesFolder">
>         <Directory Id="INSTALLDIR">
>           <Directory Id="APP_DIR" Name="SilentInstallApp" />
>         </Directory>
>         <Directory Id="DB_DIR" Name="SilentInstallDB">
>           <Directory Id="DB_LOG_DIR" Name="Log" />
>         </Directory>
>       </Directory>
>     </Directory>
>   </Fragment>
>
>   <Fragment>
>     <ComponentGroup Id="AppCG" Directory="APP_DIR">
>       <Component Id="AppCmp" Guid="F21E7372-C85D-4708-8874-A4F6E571442C">
>         <File Id="SampleTxt" Name="Sample.txt"
> Source="SilentInstallApp\Sample.txt" KeyPath="yes"/>
>       </Component>
>     </ComponentGroup>
>     <ComponentGroup Id="DbCG" Directory="DB_DIR">
>       <Component Id="DBCmp" Guid="587B85F9-C545-4660-B8EA-1CCEFE50E539">
>         <File Id="StringSearchSQL" Name="StringSearch.sql"
> Source="SilentInstallDB\StringSearch.sql" KeyPath="yes"/>
>       </Component>
>     </ComponentGroup>
>   </Fragment>
> </Wix>
>
>
> I also have a Custom Action as below.
>
>  [CustomAction]
>         public static ActionResult SetFeatures(Session session)
>         {
>             try
>             {
>                 session.Log("Begin SetFeatures CA...");
>                 //System.Diagnostics.Debugger.Launch();
>                 session["ADDLOCAL"] = "ALL";
>                 if (string.IsNullOrEmpty(session["Installed"]))
>                 {
>                     if (session["INSTALL_APP"] == "")
>                     {
>                         session["REMOVE"] = "AppFeature";
>                     }
>                     if (session["INSTALL_DB"] == "")
>                     {
>                         session["REMOVE"] = "DBFeature";
>                     }
>                 }
>                 session.Log("End SetFeatures CA...");
>                 return ActionResult.Success;
>             }
>             catch (Exception ex)
>             {
>                 session.Log("Exception occurred in SetFeatures CA: " +
> ex.ToString());
>                 return ActionResult.Failure;
>             }
>         }
>
> I use the following commands for Silent Install.
>
> start /wait msiexec /qn /i MyMSI.msi /l*v App.log INSTALL_APP="1"
> INSTALL_DB=""
>
> start /wait msiexec /qn /i MyM.msi /l*v Db.log INSTALL_APP=""
> INSTALL_DB="1"
>
> This works fine. Now during upgrade, I change the Product ID and Version.
> I also change the content of the Sample text file and Sql file for upgrade.
> Then when I execute the first command above, it is unfortunately upgrading
> both the features. I want to control this behavior. Can anyone please help?
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>


More information about the wix-users mailing list