prq file for Microsoft .NET 6.0 Desktop Runtime 6.0.8
I would like to install .NET 6.0 Desktop Runtime 6.0.8 (x64) as a prerequisite through a setup.exe developed from IS2020 since our app requires .NET 6.0 Desktop 6.0.8. I have few issues.
I downloaded the file "Microsoft .NET 6.0 Desktop Runtime 6.0.2 (x64).zip" from https://community.flexera.com/t5/InstallShield-Forum/NET-6-prerequisites/m-p/222463, made the various change for 6.0.8 (ID, condition, file name and installer name/checksum and size), downloaded Desktop Runtime 6.0.8 from Microsoft and copy the files to the IS2020's SetupPrerequisites folder.
1st issue (for completeness):
If the pre-requisites and .msi are embedded into setup.exe, the system says the file “could not be found” (see picture below). I think this is due to some security rules down to our OS config. As the same setup.exe works fine on clean Win10 and Win11. Would you agree?
2nd issue (my issue to you):
The registry key to check, the install condition, HKEY_LOCAL_MACHINE\SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedhost is not necessarily updated by the .NET installer. See next paragraph for explanation.
After doing a bit of internet search, I come across https://docs.microsoft.com/en-us/answers/questions/913327/correct-approach-to-check-for-net-6-installation.html which seems to indicate the registry HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.WindowsDesktop, entry name <version>, in my case entry key “6.0.8” existence is probably better. From experiments, the sharedhost ‘s Version represents the .NET 6.0 runtime and not the version of the desktop part (before installing 6.0.8, the value of sharedhost ‘s Version was 6.0.6, become 6.0.8 after 6.0.8 is installed and if I uninstall manually Desktop Runtime 6.0.8, the value does not change from 6.0.8, however, HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.WindowsDesktop.App’s key 6.0.8 is removed (logically).
So, checking sharedhost ‘s Version would be fine for the .NET 6.0 core runtime. For the bundle Desktop, desktop part and core runtimes, (or .NET bundle ASP.NET Core Runtime for instance), looking at that entry does not say the desktop part is or isn’t installed (and does not represents its version), it seems to me that only the entry 6.0.8 in HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.WindowsDesktop.App would. Would you agree?
PS: your website interface is so rubbish, so frustrating, so insulting, so unfriendly. For example "Correct the highlighted errors and try again." is so un-informative. Can it says "This board requires at least one label for each message." instead of hiding he message? I guess your are not responsible for it.
I found out how to fix this issue, go to the redistributables and right click on the .NET 6.0 one that you created, click Edit Prerequisite, you'll see this screen:
In the screenshot above you already see something filled in in 'Specify the application you wish to launch', but in yours it's probably empty. Select the correct .exe file on your computer and click on File -> Save. (or press ctrl + s) and build your project again!