But that would need a bundle, since running vc_redist.exe as a custom
action is crazy. Can't you just install the CRT DLLs in the same
directory as the executables?

-- 
Nicolas

2013/12/12 Phil Wilson <phildgwil...@gmail.com>:
> You'd need to use the vc_redist exe and install that first. That merge
> module has an explicit ALLUSERS setting because it's intended to be per
> machine, so you'd need to take it out and use the redist exe.
>
> Phil Wilson
>
>
> On Thu, Dec 12, 2013 at 10:58 AM, Happy Geek <happygeek...@gmail.com> wrote:
>
>> It appears that I added vcredist merge modules in the upgrade that cause
>> the upgrade to be permachine install. Is there anyway to bundle vcredist
>> merge modules but still have a peruser install?
>>
>>
>>
>> On Wed, Dec 11, 2013 at 7:54 AM, Phil Wilson <phildgwil...@gmail.com>
>> wrote:
>>
>> > If you don't specify an ALLUSERS property it defaults to per user. The
>> > behavior you see might be because ALLUSERS was 2, which does per machine
>> if
>> > the user is privileged and per user if not privileged. Verify what's
>> > happening to ALLUSERS by looking in the log, for the upgrade and
>> original,
>> > and what privilege the user has. MSIINSTALLPERUSER is also worth looking
>> > at. The upgrade code may not be the issue if you have something in the UI
>> > that sets either of these.
>> >
>> > MSI will not do that cross context upgrade for you, so you may need a
>> > bundle to uninstall the old one then install the new.
>> >
>> >
>> > Phil Wilson
>> >
>> >
>> > On Tue, Dec 10, 2013 at 4:11 PM, Happy Geek <happygeek...@gmail.com>
>> > wrote:
>> >
>> > > Hi all,
>> > >
>> > > I wrote an installer for my app and now I am trying to release an
>> upgrade
>> > > and creating an installer for that. The issue I am having is that the
>> new
>> > > installer logs tell me that old install was per-user while current
>> > install
>> > > is per-machine and thus it fails to findrelatedproducts and hence fails
>> > to
>> > > removeexistingproducts. Both my original installer and upgrade
>> installer
>> > > do not specify the InstallScope.
>> > >
>> > > I have two questions:
>> > >
>> > > 1: Why is my original install a per-user install? Is it because I wrote
>> > to
>> > > HKCU?
>> > >
>> > > 2: Why is my new/upgrade install a per-machine install? I am not
>> changing
>> > > anything in the upgrade except version number and product.
>> > >
>> > > I tried adding InstallScope="perUser" explicity under Package in my
>> > > upgrade but the logs still say that current install is per-machine and
>> > > don't remove the old product.
>> > >
>> > > What do I need to do to so that my upgrade removes the old code and
>> > > installs the new version of the app?
>> > >
>> > > My original and upgrade installer code is given below.
>> > >
>> > > Thanks.
>> > >
>> > > My original installer code:
>> > >
>> > > <?xml version="1.0" encoding="utf-8"?>
>> > > <?include rtcversion.wxi ?>
>> > > <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
>> > >     <Product Name="$(var.ApplicationName)"
>> > > Id="$(var.MyApp_Component_PRODUCT_ID_STR)"
>> > > UpgradeCode="$(var.MyApp_Component_UPGRADE_CODE_STR)"
>> > > Version="$(var.MyApp_PRODUCTVERSION_STR)"
>> > > Manufacturer="$(var.VER_COMPANYNAME_STR)" Language="!(loc.LANG_CODE)"
>> > > Codepage="1252">
>> > >         <Package Id="*" Keywords="Installer"
>> > > Description="$(var.ApplicationName) Installer" InstallerVersion="450"
>> > > Compressed="yes" />
>> > >         <Property Id="VCREDIST_INSTALLED">
>> > >             <RegistrySearch Id="RegistrySearch_VCRedist_Installed"
>> > >
>> > >
>> >
>> Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{95716cce-fc71-413f-8ad5-56c2892d4b3a}"
>> > > Name="DisplayVersion" Root="HKLM" Type="raw" />
>> > >         </Property>
>> > >         <Condition Message="$(var.ApplicationName) installation
>> requires
>> > > Microsoft Visual C++ 2012 Redistributable (x86). Installation cannot
>> > > continue. Please install Microsoft Visual C++ 2012 Redistributable
>> (x86)
>> > > from http://www.microsoft.com/en-us/download/details.aspx?id=30679 and
>> > try
>> > > again."><![CDATA[INSTALLED Or VCREDIST_INSTALLED Or
>> > > BYPASS_MyApp_DEPENDENCY_CHECKS Or REMOVE="ALL"]]></Condition>
>> > >         <PropertyRef Id="NETFRAMEWORK45" />
>> > >         <Condition Message="$(var.ApplicationName) installation
>> requires
>> > > Microsoft .NET Framework 4.5. Installation cannot continue. Please
>> > install
>> > > Microsoft .NET Framework 4.5 from
>> > > http://www.microsoft.com/en-us/download/details.aspx?id=30653 and try
>> > > again."><![CDATA[INSTALLED Or NETFRAMEWORK45 Or
>> > > BYPASS_MyApp_DEPENDENCY_CHECKS Or REMOVE="ALL"]]></Condition>
>> > >         <Icon Id="MyApp.ico"
>> > SourceFile="$(var.BASEPATH)\MyApp\MyApp.ico"/>
>> > >         <Property Id="ARPPRODUCTICON" Value="MyApp.ico" />
>> > >         <Property Id="WIXUI_INSTALLDIR" Value="MYAPPDIR" />
>> > >         <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
>> Value="Launch
>> > > $(var.ApplicationName)" />
>> > >         <Property Id="WixShellExecTarget" Value="[#MyApp_exe]" />
>> > >         <CustomAction Id="LaunchApplication" BinaryKey="WixCA"
>> > > DllEntry="WixShellExec" Impersonate="yes" />
>> > >         <Media Id="1" Cabinet="MyApp.cab" EmbedCab="yes" />
>> > >         <UI>
>> > >             <UIRef Id="WixUI_InstallDir" />
>> > >             <Publish Dialog="ExitDialog" Control="Finish"
>> > Event="DoAction"
>> > > Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT
>> > > Installed</Publish>
>> > >         </UI>
>> > >         <Directory Id="TARGETDIR" Name="SourceDir">
>> > >             <Directory Id="ProgramFilesFolder" Name="PFiles">
>> > >                 <Directory Id="MYAPPDIR" ShortName="MyApp"
>> > > Name="$(var.ApplicationName)" />
>> > >             </Directory>
>> > >             <Directory Id="ProgramMenuFolder" Name="Programs" />
>> > >         </Directory>
>> > >         <DirectoryRef Id="MYAPPDIR">
>> > >             <Component Id="MyApp_executable">
>> > >                 <File Id="MyApp_exe"
>> > > Source="$(var.BASEPATH)\MyApp\MyApp.exe" KeyPath="yes" />
>> > >             </Component>
>> > >         </DirectoryRef>
>> > >         <DirectoryRef Id="ProgramMenuFolder">
>> > >             <Component Id="MyApp_shortcut"
>> > > Guid="82CBCBED-F0FD-497A-A34C-6290B7AAE4C4">
>> > >                 <Shortcut Id="ApplicationStartMenuShortcut"
>> > > Name="$(var.ApplicationName) Desktop" Target="[MYAPPDIR]MyApp.exe"
>> > > WorkingDirectory="MYAPPDIR" />
>> > >                 <RemoveFile Id="ApplicationStartMenuShortcut"
>> > > Name="RemoveShortcut" On="uninstall" />
>> > >                 <RegistryValue Root="HKCU"
>> > > Key="Software\XYZ\$(var.ApplicationName)" Name="installed"
>> Type="integer"
>> > > Value="1" KeyPath="yes" />
>> > >             </Component>
>> > >         </DirectoryRef>
>> > >         <Feature Id="MyApp_Application" Title="$(var.ApplicationName)"
>> > > Level="1" ConfigurableDirectory="MYAPPDIR">
>> > >             <ComponentRef Id="MyApp_executable" />
>> > >             <ComponentRef Id="MyApp_shortcut" />
>> > >         </Feature>
>> > >     </Product>
>> > > </Wix>
>> > >
>> > >
>> > > My upgrade installer code:
>> > >
>> > > <?xml version="1.0" encoding="utf-8"?>
>> > > <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
>> > >     <Product Name="$(var.ApplicationName)"
>> > > Id="$(var.MyApp_Component_PRODUCT_ID_STR)"
>> > > UpgradeCode="$(var.MyApp_Component_UPGRADE_CODE_STR)"
>> > > Version="$(var.MyApp_PRODUCTVERSION_STR)"
>> > > Manufacturer="$(var.VER_COMPANYNAME_STR)" Language="!(loc.LANG_CODE)"
>> > > Codepage="1252">
>> > >         <Package Id="*" Keywords="Installer"
>> > > Description="$(var.ApplicationName) Installer" InstallerVersion="450"
>> > > Compressed="yes" />
>> > >         <Upgrade Id="$(var.MyApp_Component_UPGRADE_CODE_STR)">
>> > >             <UpgradeVersion Maximum="$(var.MyApp_PRODUCTVERSION_STR)"
>> > > IncludeMaximum="no" Language="!(loc.LANG_CODE)" OnlyDetect="no"
>> > > Property="PREVIOUSFOUND" />
>> > >         </Upgrade>
>> > >         <Property Id="VCREDIST_INSTALLED">
>> > >             <RegistrySearch Id="RegistrySearch_VCRedist_Installed"
>> > >
>> > >
>> >
>> Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{95716cce-fc71-413f-8ad5-56c2892d4b3a}"
>> > > Name="DisplayVersion" Root="HKLM" Type="raw" />
>> > >         </Property>
>> > >         <Condition Message="$(var.ApplicationName) installation
>> requires
>> > > Microsoft Visual C++ 2012 Redistributable (x86). Installation cannot
>> > > continue. Please install Microsoft Visual C++ 2012 Redistributable
>> (x86)
>> > > from http://www.microsoft.com/en-us/download/details.aspx?id=30679 and
>> > try
>> > > again."><![CDATA[INSTALLED Or VCREDIST_INSTALLED Or
>> > > BYPASS_MyApp_DEPENDENCY_CHECKS Or REMOVE="ALL"]]></Condition>
>> > >         <PropertyRef Id="NETFRAMEWORK45" />
>> > >         <Condition Message="$(var.ApplicationName) installation
>> requires
>> > > Microsoft .NET Framework 4.5. Installation cannot continue. Please
>> > install
>> > > Microsoft .NET Framework 4.5 from
>> > > http://www.microsoft.com/en-us/download/details.aspx?id=30653 and try
>> > > again."><![CDATA[INSTALLED Or NETFRAMEWORK45 Or
>> > > BYPASS_MyApp_DEPENDENCY_CHECKS Or REMOVE="ALL"]]></Condition>
>> > >         <Icon Id="MyApp.ico"
>> SourceFile="$(var.BASEPATH)\MyApp\MyApp.ico"
>> > > />
>> > >         <Property Id="ARPPRODUCTICON" Value="MyApp.ico" />
>> > >         <Property Id="WIXUI_INSTALLDIR" Value="MYAPPDIR" />
>> > >         <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
>> Value="Launch
>> > > $(var.ApplicationName)" />
>> > >         <Property Id="WixShellExecTarget" Value="[#MyApp_exe]" />
>> > >         <CustomAction Id="LaunchApplication" BinaryKey="WixCA"
>> > > DllEntry="WixShellExec" Impersonate="yes" />
>> > >         <Media Id="1" Cabinet="MyApp.cab" EmbedCab="yes" />
>> > >         <UI>
>> > >             <UIRef Id="WixUI_InstallDir" />
>> > >             <Publish Dialog="ExitDialog" Control="Finish"
>> > Event="DoAction"
>> > > Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT
>> > > Installed</Publish>
>> > >         </UI>
>> > >         <Directory Id="TARGETDIR" Name="SourceDir">
>> > >             <!--<Directory Id="SystemFolder" Name="SystemFolder" />-->
>> > >             <Directory Id="ProgramFilesFolder" Name="PFiles">
>> > >                 <Directory Id="MYAPPDIR" ShortName="MyApp"
>> > > Name="$(var.ApplicationName)" />
>> > >             </Directory>
>> > >             <Directory Id="ProgramMenuFolder" Name="Programs" />
>> > >         </Directory>
>> > >         <DirectoryRef Id="MYAPPDIR">
>> > >             <Component Id="MyApp_executable">
>> > >                 <File Id="MyApp_exe"
>> > > Source="$(var.BASEPATH)\MyApp\MyApp.exe" KeyPath="yes" />
>> > >             </Component>
>> > >         </DirectoryRef>
>> > >         <DirectoryRef Id="ProgramMenuFolder">
>> > >             <Component Id="MyApp_shortcut"
>> > > Guid="82CBCBED-F0FD-497A-A34C-6290B7AAE4C4">
>> > >                 <Shortcut Id="ApplicationStartMenuShortcut"
>> > > Name="$(var.ApplicationName) Desktop" Target="[MYAPPDIR]MyApp.exe"
>> > > WorkingDirectory="MYAPPDIR" />
>> > >                 <RemoveFile Id="ApplicationStartMenuShortcut"
>> > > Name="RemoveShortcut" On="uninstall" />
>> > >                 <RegistryValue Root="HKCU"
>> > > Key="Software\XYZ\$(var.ApplicationName)" Name="installed"
>> Type="integer"
>> > > Value="1" KeyPath="yes" />
>> > >             </Component>
>> > >         </DirectoryRef>
>> > >
>> > >         <Feature Id="MyApp_Application" Title="$(var.ApplicationName)"
>> > > Level="1" ConfigurableDirectory="MYAPPDIR">
>> > >             <ComponentRef Id="MyApp_executable" />
>> > >             <ComponentRef Id="MyApp_shortcut" />
>> > >         </Feature>
>> > >         <InstallExecuteSequence>
>> > >             <RemoveExistingProducts After="InstallInitialize" />
>> > >         </InstallExecuteSequence>
>> > >     </Product>
>> > > </Wix>
>> > >
>> > >

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to