Hi,

I'm trying to get Burn to install .Net 4.0.3 - if it is not already
installed - prior to kicking off my managed bootstrapper, which itself
specifically requires 4.0.3 to run properly.

I've included <PackageGroupRef Id="NetFx40Web" /> in my bundle, and that
works fine in general and installs 4.0.3; however, the problem occurs when a
user already has .Net 4 but *NOT* Platform Update 3.  The check in
WixNetFxExtension to install .Net Framework rightly evaluates as false
because .Net Framework 4 is already installed.  In order to work around this
for my purposes, I've tried modifying the WixNetFxExtension source to add a
check for Platform Update 3, and install it if it isn't present:

Snippet from modified NetFx4.wxs:

<Fragment>
    <util:RegistrySearch
        Id="NETFRAMEWORK40"
        Variable="NETFRAMEWORK40"
        Root="HKLM"
        Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"
        Value="Install"
        Result="value" />
*       <util:RegistrySearch
        Id="NETFRAMEWORK40PU3"
        Variable="NETFRAMEWORK40PU3"
        Root="HKLM"
       
Key="SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.3"
        Result="exists" />
*  </Fragment>

  <Fragment>
        <util:RegistrySearchRef Id="NETFRAMEWORK40"/>
    <util:RegistrySearchRef Id="NETFRAMEWORK40PU3"/>

    <WixVariable Id="WixMbaPrereqPackageId" Value="NetFx40Web" />
    <WixVariable Id="WixMbaPrereqLicenseUrl" Value="$(var.NetFx40EulaLink)"
/>

    <PackageGroup Id="NetFx40Web">
      <ExePackage
          InstallCommand="/q /norestart /ChainingPackage
&quot;[WixBundleName]&quot;"
          RepairCommand="/q /norestart /repair /ChainingPackage
&quot;[WixBundleName]&quot;"
          UninstallCommand="/uninstall /q /norestart /ChainingPackage
&quot;[WixBundleName]&quot;"
          PerMachine="yes"
          DetectCondition="NETFRAMEWORK40"
          Id="NetFx40Web"
          Vital="yes"
          Permanent="yes"
          Protocol="netfx4"
          DownloadUrl="$(var.NetFx40WebLink)"
          Compressed="no"
          Name="redist\dotNetFx40_Full_setup.exe">
        <RemotePayload
            Size="889416"
            Version="4.0.30319.1"
            ProductName="Microsoft .NET Framework 4"
            Description="Microsoft .NET Framework 4 Setup"
            CertificatePublicKey="672605E36DD71EC6B8325B91C5FE6971390CB6B6"
            CertificateThumbprint="9617094A1CFB59AE7C1F7DFDB6739E4E7C40508F"
            Hash="06BECADB92A5FCCA2529C0B93687C2A0C6D0D610"/>
      </ExePackage>
*         
          <ExePackage
          PerMachine="yes"
          DetectCondition="NETFRAMEWORK40PU3"
          Id="NetFx403Web"
          Vital="yes"
          Permanent="yes"
          SourceFile="X:\Wix Installer\Merge
Modules\NDP40-KB2600211-x86-x64.exe"
          Compressed="yes" />*
    </PackageGroup>
  </Fragment>

Regrettably this isn't working - the platform update doesn't get installed
at all.

Any ideas where I'm going wrong?  Is there a simpler way to do this?  Any
help would be very much appreciated!

Cheers,
Scottie



--
View this message in context: 
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Installing-Net-4-0-3-Prerequisites-required-for-managed-bootstrapper-tp7599019.html
Sent from the wix-users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to