Hello all, I am currently working on an installer in which I would need to
bootstrap VCredist. As some may know there are two separate files within
the C:\Program Files (x86)\Microsoft
SDKs\Windows\v7.0A\Bootstrapper\Packages folder:



Vcredist_x64

Vcredist_x86



I have tried bootstrapping both product xmls and simply changed the FailIf
element to

<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo"
Value="AMD64" String="InvalidOS"/>



I have done the same for the x86 product xml. Although my changes have
correctly caused them to run on their respective machine. They appear to
run regardless if there is an updated version of the VCredist already
installed. Below I have posted both product xmls in hopes that someone has
a suggestion on what to add within the product.xml files or if there is a
better way of installing the VCredist altogether. Any help will be greatly
appreciated.



VCredist_x86 Product.xml



<?xml version="1.0" encoding="utf-8" ?>



<Product

  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper";

  ProductCode="Microsoft.Visual.C++.10.0.x86"

>



  <!-- Defines list of files to be copied on build -->

  <PackageFiles>

    <PackageFile Name="vcredist_x86.exe" HomeSite="VCRedistExe"/>

  </PackageFiles>

  <InstallChecks>

    <MsiProductCheck Property="VCRedistInstalled"
Product="{6EE91C1A-A2E7-38CD-AEBB-3B900A4D8868}"/>

  </InstallChecks>



  <!-- Defines how to invoke the setup for the Visual C++ 10.0 redist -->

  <!-- TODO: Needs EstrimatedTempSpace, LogFile, and an update of
EstimatedDiskSpace -->

  <Commands Reboot="Defer">

    <Command PackageFile="vcredist_x86.exe"

                     Arguments=' /q:a '

                     >



      <!-- These checks determine whether the package is to be installed -->

      <InstallConditions>

        <BypassIf Property="VCRedistInstalled"
Compare="ValueGreaterThanOrEqualTo" Value="3"/>

        <!-- Block install if user does not have admin privileges -->

        <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false"
String="AdminRequired"/>



        <!-- Block install on Win95 -->

        <FailIf Property="Version9X" Compare="VersionLessThan" Value="4.10"
String="InvalidPlatformWin9x"/>



        <!-- Block install on NT 4 or less -->

                                <!-- Custom comment below -->

        <!-- <FailIf Property="VersionNT" Compare="VersionLessThan"
Value="5.00" String="InvalidPlatformWinNT"/> -->



                                <!-- Change made to check if processor
architecture is AMD64 -->

                                <BypassIf Property="ProcessorArchitecture"
Compare="ValueNotEqualTo" Value="Intel" String="InvalidOS"/>



      </InstallConditions>



      <ExitCodes>

        <ExitCode Value="0" Result="Success"/>

        <ExitCode Value="3010" Result="SuccessReboot"/>

        <DefaultExitCode Result="Fail" FormatMessageFromSystem="true"
String="GeneralFailure" />

      </ExitCodes>



    </Command>

  </Commands>

</Product>





VCredist_x64 Product.xml



<?xml version="1.0" encoding="utf-8" ?>



<Product

  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper";

  ProductCode="Microsoft.Visual.C++.10.0.x64"

>



  <!-- Defines list of files to be copied on build -->

  <PackageFiles>

    <PackageFile Name="vcredist_x64.exe" HomeSite="VCRedistExe"/>

  </PackageFiles>



  <InstallChecks>

    <MsiProductCheck Property="VCRedistInstalled"
Product="{5275B86B-C594-367D-8C38-F83DF9745B31}"/>

  </InstallChecks>



  <!-- Defines how to invoke the setup for the Visual C++ 10.0 redist -->

  <!-- TODO: Needs EstrimatedTempSpace, LogFile, and an update of
EstimatedDiskSpace -->

  <Commands Reboot="Defer">

    <Command PackageFile="vcredist_x64.exe"

                     Arguments=' /q:a '

                     >



      <!-- These checks determine whether the package is to be installed -->

      <InstallConditions>

        <BypassIf Property="VCRedistInstalled"
Compare="ValueGreaterThanOrEqualTo" Value="3"/>

        <!-- Block install if user does not have admin privileges -->

        <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false"
String="AdminRequired"/>



        <!-- Block install on any platform other than x64 -->

                                <!-- Custom comment below -->

                                <!-- Changed from FailIf to BypassIf -->

        <BypassIf Property="ProcessorArchitecture"
Compare="ValueNotEqualTo" Value="AMD64" String="InvalidOS"/>



      </InstallConditions>



      <ExitCodes>

        <ExitCode Value="0" Result="Success"/>

        <ExitCode Value="3010" Result="SuccessReboot"/>

        <DefaultExitCode Result="Fail" FormatMessageFromSystem="true"
String="GeneralFailure" />

      </ExitCodes>



    </Command>

  </Commands>

</Product>
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to