Some of the runtime Dlls can be installed into the local application
directory, true, but details depend on which CRT versions. I wouldn't just
delete the ALLUSERS in the merge module because there's probably a bunch of
SXS stuff in there too. If the Dll is really private then just put it in
the app directory without the merge module but only if it's a version that
allows that. The other issue is that may be several directories with exes
that need the runtime in a scattered install of binaries.

Private copies require private fixes if there is an issue, especially
security. Many companies don't wish to be in the business of maintaining MS
Dlls - that's not their job - so the redist is often the best choice.

In this case, a bundle could be used to install the redist, and a bundle
might be needed anyway to do the uninstall of the old version and install
the new version because of the cross context upgrade. That might be the
best solution.

Phil Wilson


On Thu, Dec 12, 2013 at 11:21 AM, Nicolás Alvarez <nicolas.alva...@gmail.com
> wrote:

> 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=30679and
> >> > 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=30679and
> >> > 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
>
------------------------------------------------------------------------------
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