Badhan Sen
Badhan Sen

Reputation: 737

Issue with .NET 4.8 framework installation on WiX bootstrapper project

I am working on a WiX bootstrapper application with Custom UI that installs a .msi and some .exe files. I have a prerequisite that .NET 4.8 must be installed on the system. If it is not installed then first install the .NET 4.8 framework then install all the other items.

I am using WiX v3.14.0.5722 for the installer application. Going through the documentation to install .NET 4.8 I follow this article. Link: How To: Install the .NET Framework Using Burn

<Chain>
    <PackageGroupRef Id="NetFx48Redist"/>
    .....
    .....
</Chain>

I have also tried to check and place conditions on the .msi project as below.

<PropertyRef Id="WIX_IS_NETFRAMEWORK_48_OR_LATER_INSTALLED"/>

.......
.......

<Condition Message="This application requires .NET Framework 4.8. Please install the .NET Framework then run this installer again.">
    <![CDATA[Installed OR WIX_IS_NETFRAMEWORK_48_OR_LATER_INSTALLED]]>
</Condition>

But no solution is working for me. and I am getting this error as below.

Bundle.wxs(67,0): error LGHT0094: Unresolved reference to symbol 'ChainPackageGroup:NetFx48Redist'

Then I found some implementations about .NET 4.8 installation and import the NetFx48.wxs file from wixtoolset/wix3 and then the ChainPackageGroup:NetFx48Redist error was gone but another problem I found as below:

Acquiring package NetFx48Redist, payload NetFx48Redist, download from httpsgo.microsoft.comfwlinkLinkId=2088631
Error 0x80070490 Failed to find expected public key in certificate chain.
Error 0x80070490 Failed to verify expected payload against actual certificate chain.
Error 0x80070490 Failed to verify signature of payload NetFx48Redist

I also follow the link .NET 4.8 redistributable downloads have changed its hash and file size and could not solve my problem.

Can anyone help me to solve the .NET 4.8 installation issue? Thank you in advance. Happy coding.

Upvotes: 4

Views: 6450

Answers (2)

Badhan Sen
Badhan Sen

Reputation: 737

I have solved my problem and I want to share my thought about it as lots of developers can be benefited from this.

As the implementation of .NET 4.8 framework installation in WixNetFxExtension extension was included or not in WiX v3.14.0.5722 WiX version. In my case, it was not working.

So I included the NetFx48.wxs file in my project in both bootstrapper and .msi projects but I have to update the remotePayload.

So how to update remotePayload of NetFx48.wxs

<RemotePayload 
          CertificatePublicKey="D17AFCE951979605250FAEBAFA7AE974899AED22" 
          CertificateThumbprint="C82273A065EC470FB1EBDE846A91E6FFB29E9C12" 
          Description="Microsoft .NET Framework 4.8 Setup" 
          Hash="5A84A8E612E270E27D0061D58DB6B470153BE1F9" 
          ProductName="Microsoft .NET Framework 4.8" 
          Size="1479400" 
          Version="4.8.3928.0" />
<RemotePayload
          CertificatePublicKey="D17AFCE951979605250FAEBAFA7AE974899AED22" 
          CertificateThumbprint="C82273A065EC470FB1EBDE846A91E6FFB29E9C12" 
          Description="Microsoft .NET Framework 4.8 Setup" 
          Hash="8DD233698D5EB4609B86C2AC917279FE39E0EF4C" 
          ProductName="Microsoft .NET Framework 4.8" 
          Size="117380440" 
          Version="4.8.3928.0" />

First, you have to download the ndp48-web.exe and ndp48-x86-x64-allos-enu.exe files then go to wix installation folder. Then run the following command

heat.exe payload [ndp48-web.exe file directory] -out [file_name.wxs]

do it for the second file also.

heat.exe payload [ndp48-x86-x64-allos-enu.exe file directory] -out [file_name.wxs]

Then we can get the updated remotePayload files as shown bellow

 <RemotePayload 
          CertificatePublicKey="F49F9B33E25E33CCA0BFB15A62B7C29FFAB3880B" 
          CertificateThumbprint="ABDCA79AF9DD48A0EA702AD45260B3C03093FB4B" 
          Description="Microsoft .NET Framework 4.8 Setup" 
          Hash="4181398AA1FD5190155AC3A388434E5F7EA0B667" 
          ProductName="Microsoft .NET Framework 4.8" 
          Size="1439328" 
          Version="4.8.4115.0" />

<RemotePayload
          CertificatePublicKey="F49F9B33E25E33CCA0BFB15A62B7C29FFAB3880B" 
          CertificateThumbprint="ABDCA79AF9DD48A0EA702AD45260B3C03093FB4B" 
          Description="Microsoft .NET Framework 4.8 Setup" 
          Hash="E322E2E0FB4C86172C38A97DC6C71982134F0570" 
          ProductName="Microsoft .NET Framework 4.8" 
          Size="117380440" 
          Version="4.8.4115.0" />

Upvotes: 6

Matt
Matt

Reputation: 399

Have a look at the values in this file https://github.com/wixtoolset/wix3/blob/develop/src/ext/NetFxExtension/wixlib/NetFx48.wxs

Microsoft in their wisdom changed the version of .NET 4.8 pointed at by their download links.

Upvotes: 3

Related Questions