elliottgresham
Level 3

.NET Framework 4.8 prq file

Jump to solution

Hello,

We are in the process of updating our software to .NET Framework 4.8. I notice there isn't a Redistributable in InstallShield for .NET Framework 4.8.

Does anyone have a .prq file available for .NET Framework 4.8?

Kind Regards

Elliott

0 Kudos
1 Solution

Thanks Jenifer.

Just incase anyone requires this prq file, this is what I have made (adapted from .NET Framework 4.7 Full). It seems to work well after initial testing.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetupPrereq>
	<conditions>
		<condition Type="2" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" FileName="Release" ReturnValue="528049"/>
	</conditions>
	<operatingsystemconditions>
		<operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" ServicePackMajorMin="1"/>
		<operatingsystemcondition MajorVersion="6" MinorVersion="3" PlatformId="2" CSDVersion=""/>
		<operatingsystemcondition MajorVersion="10" MinorVersion="0" PlatformId="2" CSDVersion="" ProductType="2|3"/>
		<operatingsystemcondition MajorVersion="10" MinorVersion="0" PlatformId="2" CSDVersion=""/>
		<operatingsystemcondition MajorVersion="6" MinorVersion="2" PlatformId="2" CSDVersion="" ProductType="2|3"/>
	</operatingsystemconditions>
	<files>
		<file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\Microsoft .net\4.8\Full\NDP48-x86-x64-AllOS-ENU.exe" URL="https://go.microsoft.com/fwlink/?linkid=2088631" FileSize="0,0"/>
	</files>
	<execute file="NDP48-x86-x64-AllOS-ENU.exe" cmdline="/q /norestart" cmdlinesilent="/q /norestart" returncodetoreboot="1641,3010"/>
	<properties Id="{9EAB3A18-639C-42D9-BFAC-A056F6FE967A}" Description="This prerequisite installs the .NET Framework 4.8 Full standalone package." AltPrqURL=""/>
	<behavior Reboot="2"/>
</SetupPrereq>

View solution in original post

13 Replies
Jenifer
Flexera Alumni

Hi @elliottgresham ,

 

i would suggest you to take reference of previous pre-requisite whichever you have as latest.Using pre-requisite editor you will be able to edit registry settings and downloadable file.

One slight modification you might need to do is:Registry condition value of .Net Framework 4.8 existence:

 Registry key path:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

Value of .NET 4.8 framework is:528040

Reference:https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-ar...

Content .prq will look like:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetupPrereq>
<conditions>
<condition Type="2" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" FileName="Release" ReturnValue="528040"/>
</conditions>
<operatingsystemconditions>
<operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" ServicePackMajorMin="1"/>
<operatingsystemcondition MajorVersion="6" MinorVersion="3" PlatformId="2" CSDVersion=""/>
<operatingsystemcondition MajorVersion="10" MinorVersion="0" PlatformId="2" CSDVersion="" ProductType="2|3"/>
<operatingsystemcondition MajorVersion="10" MinorVersion="0" PlatformId="2" CSDVersion=""/>
<operatingsystemcondition MajorVersion="6" MinorVersion="2" PlatformId="2" CSDVersion="" ProductType="2|3"/>
</operatingsystemconditions>
<files>
<file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\Microsoft .net\4.8\Web\<FileName>.exe" URL="<Downloadble link>" FileSize="0,0"/>
</files>
<execute file="<FileName>.exe" cmdline="/q /norestart" cmdlinesilent="/q /norestart" returncodetoreboot="1641,3010"/>
<properties Id="{<GUID>}" Description="This prerequisite installs the .NET Framework 4.8 Web Installer package." AltPrqURL=""/>
<behavior Reboot="2"/>
</SetupPrereq>

 

Hope it helps,

Thanks,

Jenifer

Hi Jenifer

Thank you for your quick reply.

I did look at the .NET Framework 4.7 prq file and had started to adapt that, but I wasn't sure on some of the values. For example, there was a AltPrqURL value and I didn't know if this needed to be set, but I guess not from your example.

I'll take another look and let you know if I have any questions.

Thanks again.

Elliott

0 Kudos

Hi @elliottgresham ,

 

"I did look at the .NET Framework 4.7 prq file and had started to adapt that, but I wasn't sure on some of the values. For example, there was a AltPrqURL value and I didn't know if this needed to be set, but I guess not from your example."

AltPrqURL field you can ignore as i had mentioned sample .prq content since it is alternative.Basically it would be the link of Flexera's file server which would be uploaded by them.

if you could update web link of file with file(Some entries which ever has <> added with) in addition to the content i had added in the previous reply that would be enough i guess.

Thanks,

Jenifer

0 Kudos

Thanks Jenifer.

Just incase anyone requires this prq file, this is what I have made (adapted from .NET Framework 4.7 Full). It seems to work well after initial testing.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetupPrereq>
	<conditions>
		<condition Type="2" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" FileName="Release" ReturnValue="528049"/>
	</conditions>
	<operatingsystemconditions>
		<operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" ServicePackMajorMin="1"/>
		<operatingsystemcondition MajorVersion="6" MinorVersion="3" PlatformId="2" CSDVersion=""/>
		<operatingsystemcondition MajorVersion="10" MinorVersion="0" PlatformId="2" CSDVersion="" ProductType="2|3"/>
		<operatingsystemcondition MajorVersion="10" MinorVersion="0" PlatformId="2" CSDVersion=""/>
		<operatingsystemcondition MajorVersion="6" MinorVersion="2" PlatformId="2" CSDVersion="" ProductType="2|3"/>
	</operatingsystemconditions>
	<files>
		<file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\Microsoft .net\4.8\Full\NDP48-x86-x64-AllOS-ENU.exe" URL="https://go.microsoft.com/fwlink/?linkid=2088631" FileSize="0,0"/>
	</files>
	<execute file="NDP48-x86-x64-AllOS-ENU.exe" cmdline="/q /norestart" cmdlinesilent="/q /norestart" returncodetoreboot="1641,3010"/>
	<properties Id="{9EAB3A18-639C-42D9-BFAC-A056F6FE967A}" Description="This prerequisite installs the .NET Framework 4.8 Full standalone package." AltPrqURL=""/>
	<behavior Reboot="2"/>
</SetupPrereq>

View solution in original post

Here is the .NET Framework 4.8 PRQ attached. 

Thanks,

Bikram


@Bikram wrote:

Here is the .NET Framework 4.8 PRQ attached. 

Thanks,

Bikram


Thanks !!! 

0 Kudos

Thanks, this works for Windows prior to May 2019 Update, where the Release number is 528040 instead of 528049.

See this articles...
https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-ar...

Any idea how to make the pre-requisite check different release values on different OS versions?

0 Kudos
Sorry I got the numbers the wrong way around, it works for 528049, but since then MS have changed the Release version to 528040, so the pre-requisite doesn't realise the .NET 4.8 is already installed when it is, tries to install it and then fails.
0 Kudos

Is it just a case of adding another condition line to include the second release version?

	<conditions>
		<condition Type="2" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" FileName="Release" ReturnValue="528049"/>
		<condition Type="2" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" FileName="Release" ReturnValue="528040"/>
	</conditions>
0 Kudos

Hi @SimonG ,

 

Since pre-requisite conditions are OR based can you give a try with both 528049 & 528040.I would also suggest you to add OS(Operating systems whichever you want to add) in condition.

 

Thanks,

Jenifer

0 Kudos

This is something that has come up for us, but I haven't had chance to look into it as yet.

Your suggestion sounds good, and would be interested to know how you get on.

 

0 Kudos

Yes, including the following conditions seems to work well. Tested on Windows 2012, Windows 10 old, Windows 10 new and it appeared to do everything it was supposed to do.

<conditions>
		<condition Type="2" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" FileName="Release" ReturnValue="528049"/>
		<condition Type="2" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" FileName="Release" ReturnValue="528040"/>
	</conditions>

I will add that .NET Framework installer for 4.8 is incredibly slow. There's a bit where it sits at about 15-20% done for a long long time and then suddenly completes the rest. Not much happening on the CPU or disk, so no idea what it is thinking about all that time. Smiley LOL

0 Kudos

We had the same problem with adding the prq for .Net Framework 4.8 and used the prq supplied by Jenifer.

The prq failed on one of our installs and tried to install the prq when 4.8 was already on the machine because the installed version was the ealier 528040 version.

To fix this all that was needed was to change 528049  to 528040 because comparison 2 is 'Data on Target system is less than specified data'. 

Therefore the line

<condition Type="2" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" FileName="Release" ReturnValue="528049"/>

is redundent as it is overwitten by

<condition Type="2" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" FileName="Release" ReturnValue="528040"/>

 Your conditions should only contain the one condition and look like this

<conditions>
<condition Type="2" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" FileName="Release" ReturnValue="528040"/>
</conditions>