[wix-users] Using WixNetFxExtension
Vanniekerk, Tyrel (GE Healthcare)
tyrel.vanniekerk at ge.com
Mon Feb 6 11:00:24 PST 2017
I guess this is where I totally miss something. I had my code exactly a you have it, but I simply cannot get wix to look for the files in the payload/temp folder.
This is so extremely frustrating because I must just be doing something wrong. I am tempted to create a small sample project to replicate the issue in a controlled environment.
My log file shows WiX trying to find the .net exe in my debug folder, not in the temp folder where the payload was copied:
[2CA0:2CE4][2017-02-06T11:24:53]i370: Session begin, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{4c6529a4-772a-468c-95e3-5f714181574d}, options: 0x7, disable resume: No
[2CA0:2CE4][2017-02-06T11:24:54]i000: Caching bundle from: 'C:\Users\212401~1.LOG\AppData\Local\Temp\{06074252-8922-4EE5-8CE4-0928B7AC9E45}\.be\MyProductSetup.exe' to: 'C:\ProgramData\Package Cache\{4c6529a4-772a-468c-95e3-5f714181574d}\MyProductSetup.exe'
[2CA0:2CE4][2017-02-06T11:24:54]i320: Registering bundle dependency provider: {4c6529a4-772a-468c-95e3-5f714181574d}, version: 10.0.0.0
[2CA0:2CE4][2017-02-06T11:24:54]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{4c6529a4-772a-468c-95e3-5f714181574d}, resume: Active, restart initiated: No, disable resume: No
[2558:2FE0][2017-02-06T11:24:54]w343: Prompt for source of package: NetFx462Redist, payload: NetFx462Redist, path: D:\Dev\MyProduct\Installers\MyProduct\bin\Debug\redist\NDP462-KB3151800-x86-x64-AllOS-ENU.exe
[2558:2FE0][2017-02-06T11:24:54]e054: Failed to resolve source for file: D:\Dev\MyProduct\Installers\MyProduct\bin\Debug\redist\NDP462-KB3151800-x86-x64-AllOS-ENU.exe, error: 0x80070002.
[2558:2FE0][2017-02-06T11:24:54]e000: Error 0x80070002: Failed while prompting for source (original path 'D:\Dev\MyProduct\Installers\MyProduct\bin\Debug\redist\NDP462-KB3151800-x86-x64-AllOS-ENU.exe').
[2558:2FE0][2017-02-06T11:24:54]e313: Failed to acquire payload: NetFx462Redist to working path: C:\Users\212401~1.LOG\AppData\Local\Temp\{06074252-8922-4EE5-8CE4-0928B7AC9E45}\NetFx462Redist, error: 0x80070002.
[2558:0520][2017-02-06T11:24:54]e000: Error 0x80070002: Failed while caching, aborting execution.
[2CA0:2CE4][2017-02-06T11:24:54]i372: Session end, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{4c6529a4-772a-468c-95e3-5f714181574d}, resume: None, restart: None, disable resume: No
[2CA0:2CE4][2017-02-06T11:24:54]i330: Removed bundle dependency provider: {4c6529a4-772a-468c-95e3-5f714181574d}
[2CA0:2CE4][2017-02-06T11:24:54]i352: Removing cached bundle: {4c6529a4-772a-468c-95e3-5f714181574d}, from path: C:\ProgramData\Package Cache\{4c6529a4-772a-468c-95e3-5f714181574d}\
[2CA0:2CE4][2017-02-06T11:24:54]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{4c6529a4-772a-468c-95e3-5f714181574d}, resume: None, restart initiated: No, disable resume: No
Note the path Debug\redist instead of AppData\Local\Temp\{06074252-8922-4EE5-8CE4-0928B7AC9E45}\.be\redist.
What am I missing? I has to be something simple. I have a -b specified that points to where my prerequisite files are located, but I cannot imagine that being an issue.
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Phill Hogland
Sent: Monday, February 6, 2017 12:31 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: EXT: Re: [wix-users] Using WixNetFxExtension
I started to past my code in the earlier post, and then just gave you that link, however your question relates to using the Payload/@name attribute to define the folder when the bundle is extracted on the target system
This is what I use for NetFx452 (as a child of BootstrapperApplicationRef)
<PayloadGroup Id="NetFx452RedistPayload">
<Payload Name="redist\NDP452-KB2901907-x86-x64-AllOS-ENU.exe" SourceFile="<some path in your source tree>\NetFx542Ofline\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"/>
</PayloadGroup>
Note this is for NetFx452. If you are using NetFx462 then download the package from Microsoft and put at the path defined for 'source' attribute AND change the name of the exe file in the above snippet. The name attribute defines the folder tree in the extracted temp folder on the target system, which is true of any use of the Payload element.
________________________________
From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Vanniekerk, Tyrel (GE Healthcare) <tyrel.vanniekerk at ge.com>
Sent: Monday, February 6, 2017 12:10:01 PM
To: WiX Toolset Users Mailing List
Subject: Re: [wix-users] Using WixNetFxExtension
You mean adding the following:
<Bundle>
<PayloadGroup Id="NetFx452RedistPayload">
<Payload Name="redist\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"
SourceFile="X:\path\to\redists\in\repo\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"/>
<PayloadGroup/>
</Bundle>
I did that, but instead of looking for redist\NDP452-KB2901907-x86-x64-AllOS-ENU.exe in the temp folder (the path with a guid and .ba), it tried to find the file in my debug folder where I build/ran my setup. That's the piece I am missing, how to convince WiX to look in the temp folder for the file that was extracted from the payload.
The code in the wix source:
<Fragment>
<util:RegistrySearchRef Id="NETFRAMEWORK45"/>
<WixVariable Id="WixMbaPrereqPackageId" Value="NetFx462Redist" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="$(var.NetFx462EulaLink)" Overridable="yes" />
<WixVariable Id="NetFx462RedistDetectCondition" Value="NETFRAMEWORK45 >= $(var.NetFx462MinRelease)" Overridable="yes" />
<WixVariable Id="NetFx462RedistInstallCondition" Value="" Overridable="yes" />
<WixVariable Id="NetFx462RedistPackageDirectory" Value="redist\" Overridable="yes" />
<PackageGroup Id="NetFx462Redist">
<ExePackage
InstallCommand="/q /norestart /ChainingPackage "[WixBundleName]" /log "[NetFx462FullLog].html""
RepairCommand="/q /norestart /repair /ChainingPackage "[WixBundleName]" /log "[NetFx462FullLog].html""
UninstallCommand="/uninstall /q /norestart /ChainingPackage "[WixBundleName]" /log "[NetFx462FullLog].html""
PerMachine="yes"
DetectCondition="!(wix.NetFx462RedistDetectCondition)"
InstallCondition="!(wix.NetFx462RedistInstallCondition)"
Id="NetFx462Redist"
Vital="yes"
Permanent="yes"
Protocol="netfx4"
DownloadUrl="$(var.NetFx462RedistLink)"
LogPathVariable="NetFx462FullLog"
Compressed="no"
Name="!(wix.NetFx462RedistPackageDirectory)NDP462-KB3151800-x86-x64-AllOS-ENU.exe">
<RemotePayload
CertificatePublicKey="52868DFCA6E3AF2632389E6C1EE7D0468D3797D0"
CertificateThumbprint="3BDA323E552DB1FDE5F4FBEE75D6D5B2B187EEDC"
Description="Microsoft .NET Framework 4.6.2 Setup"
Hash="A70F856BDA33D45AD0A8AD035F73092441715431"
ProductName="Microsoft .NET Framework 4.6.2"
Size="62008080"
Version="4.6.1590.0" />
</ExePackage>
</PackageGroup>
</Fragment>
Looks to find it in !(wix.NetFx462RedistPackageDirectory)NDP462-KB3151800-x86-x64-AllOS-ENU.exe, where NetFx462RedistPackageDirectory is set to "redist\". Does this mean I have to set the NetFx462RedistPackageDirectory variable to point to the "<temp folder>\redist\" for this to work?
If I included that code segment above directly into my wxs file and that works, presumably because when I build it, it finds the .exe directly from my hard drive, instead of from the payload. Then in the debug folder it contains a sub-folder with the file in it. In other words, the file itself not included in a payload in the setup file.
I have had the same issue with other installs I wanted to run. I created payload groups with some files in it, then tried to reference the exe from the ExePackage, but it would always just copy the exe to a sub-folder of the build directory and not look at the payload. I ended up calling those installs manually from my bootstrapper code.
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Phill Hogland
Sent: Monday, February 6, 2017 11:26 AM
To: wix-users at lists.wixtoolset.org
Subject: EXT: Re: [wix-users] Using WixNetFxExtension
I'm sorry I meant to add this link
https://urldefense.proofpoint.com/v2/url?u=http-3A__wixtoolset.org_documentation_manual_v3_howtos_redistributables-5Fand-5Finstall-5Fchecks_install-5Fdotnet.html&d=DQICAg&c=IV_clAzoPDE253xZdHuilRgztyh_RiV3wUrLrDQYWSI&r=oAJIeMTNC3Z6LlnozAjna4bWEZCGLInzcwB6EkZAFeU&m=HyfXEbv0fHg9f4eesK1jjhN4Xvfz8ld0rTDfvpnaEvQ&s=8bXOFQNsnAZZ1Oju8C0wyn7wLXxYISVY3elIsERfJBY&e=
How To: Install the .NET Framework Using Burn<https://urldefense.proofpoint.com/v2/url?u=http-3A__wixtoolset.org_documentation_manual_v3_howtos_redistributables-5Fand-5Finstall-5Fchecks_install-5Fdotnet.html&d=DQICAg&c=IV_clAzoPDE253xZdHuilRgztyh_RiV3wUrLrDQYWSI&r=oAJIeMTNC3Z6LlnozAjna4bWEZCGLInzcwB6EkZAFeU&m=HyfXEbv0fHg9f4eesK1jjhN4Xvfz8ld0rTDfvpnaEvQ&s=8bXOFQNsnAZZ1Oju8C0wyn7wLXxYISVY3elIsERfJBY&e=> wixtoolset.org How To: Install the .NET Framework Using Burn. Applications written using the .NET Framework often need to bundle the .NET framework and install it with their ...
________________________________
From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Phill Hogland <phill.hogland at rimage.com>
Sent: Monday, February 6, 2017 11:02:30 AM
To: wix-users at lists.wixtoolset.org
Subject: Re: [wix-users] Using WixNetFxExtension
I used the information from the chm, where Bob added the 'optional' Step 3 to cover the 'off-line' scenarios, which is what you are looking for. That detail works for me.
________________________________
From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Vanniekerk, Tyrel (GE Healthcare) <tyrel.vanniekerk at ge.com>
Sent: Monday, February 6, 2017 10:33:47 AM
To: wix-users at lists.wixtoolset.org
Subject: [wix-users] Using WixNetFxExtension
Hi,
So most posts I have found about using the WixNetFxExtension to do an offline .net install simply tell you to copy the XML from the WiX source and not how to get the NetFx Extension to work. The payload command will copy the redist for .net to some temp folder, that part works, but the package ref (in my case it is <PackageGroupRef Id="NetFx462Redist" />) still tries to find the exe in the folder relative to where you have your installer.
Is there a way to get this to work or can't you use the NetFx extension for offline installs? I had the XML directly in my installer before, but figured I would like to try and use the extension.
Thanks,
Tyrel
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant https://urldefense.proofpoint.com/v2/url?u=http-3A__www.firegiant.com_&d=DQICAg&c=IV_clAzoPDE253xZdHuilRgztyh_RiV3wUrLrDQYWSI&r=oAJIeMTNC3Z6LlnozAjna4bWEZCGLInzcwB6EkZAFeU&m=HyfXEbv0fHg9f4eesK1jjhN4Xvfz8ld0rTDfvpnaEvQ&s=2-PMapR5K1dmQwsCmSSZ-mSHX0X53nq-buJnOlnuDOs&e=
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant https://urldefense.proofpoint.com/v2/url?u=http-3A__www.firegiant.com_&d=DQICAg&c=IV_clAzoPDE253xZdHuilRgztyh_RiV3wUrLrDQYWSI&r=oAJIeMTNC3Z6LlnozAjna4bWEZCGLInzcwB6EkZAFeU&m=HyfXEbv0fHg9f4eesK1jjhN4Xvfz8ld0rTDfvpnaEvQ&s=2-PMapR5K1dmQwsCmSSZ-mSHX0X53nq-buJnOlnuDOs&e=
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant https://urldefense.proofpoint.com/v2/url?u=http-3A__www.firegiant.com_&d=DQICAg&c=IV_clAzoPDE253xZdHuilRgztyh_RiV3wUrLrDQYWSI&r=oAJIeMTNC3Z6LlnozAjna4bWEZCGLInzcwB6EkZAFeU&m=HyfXEbv0fHg9f4eesK1jjhN4Xvfz8ld0rTDfvpnaEvQ&s=2-PMapR5K1dmQwsCmSSZ-mSHX0X53nq-buJnOlnuDOs&e=
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant https://urldefense.proofpoint.com/v2/url?u=http-3A__www.firegiant.com_&d=DQICAg&c=IV_clAzoPDE253xZdHuilRgztyh_RiV3wUrLrDQYWSI&r=oAJIeMTNC3Z6LlnozAjna4bWEZCGLInzcwB6EkZAFeU&m=POwgxvLaTgAEC1q_0q8JAi7JPK5juq03vq2LqBl6kuo&s=-24NO1zR-jr1HNAQdup-K0djPn1bidFl8juMH4lSMxA&e=
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant https://urldefense.proofpoint.com/v2/url?u=http-3A__www.firegiant.com_&d=DQICAg&c=IV_clAzoPDE253xZdHuilRgztyh_RiV3wUrLrDQYWSI&r=oAJIeMTNC3Z6LlnozAjna4bWEZCGLInzcwB6EkZAFeU&m=POwgxvLaTgAEC1q_0q8JAi7JPK5juq03vq2LqBl6kuo&s=-24NO1zR-jr1HNAQdup-K0djPn1bidFl8juMH4lSMxA&e=
More information about the wix-users
mailing list