Hello, because this is one of my favourite projects out there I want to contribute something.
I was manually integrating some program updates when I stumbled upon an issue with DotNET.
First I updates the Macrium Reflect script, the newest free version is 8.0.7783:
[Main]
Title=Macrium Reflect
Description=(v8.0.7783) Macrium Reflect is a complete backup solution for personal use. Protect documents, data and operating systems using advanced disk imaging technology.
Author=Homes32
Level=5
Selected=True
Mandatory=False
Version=1.0.1.0
Date=2024-01-19
[Variables]
%ProgramFolder%="Macrium Reflect"
%ProgramExe%="Reflect.exe"
%ProgramVersion%=8.0.7783
%DownloadURLx86%=https://download.macrium.com/reflect/v8/v%ProgramVersion%/reflect_setup_free_x86.exe
%DownloadURLx64%=https://download.macrium.com/reflect/v8/v%ProgramVersion%/reflect_setup_free_x64.exe
.
.
.
No issues there, everything went fine.
Then I wanted to update Arsenal Image Mounter, newest version is 1.2.14.73 for the driver and 3.11.279 for the GUI. I'm not experienced enough with these scripts to do this and I gave up, but I noticed a problem: The GUI is now based on DotNET8.
Some tests later I realized I need more than just DotNET6, not just for the new Arsenal Image Mounter but for some other programs as well.
Here is how I did it:
the DotNET folder mainly consists of one main exe right inside the "dotnet" folder and sub-folders for every installed DotNET version:

The exe is always the highest installed version (in my case 8.0.1), the older versions are just subfolders without any special registry entries or whatsoever.
So I modified the DotNET6.script to look like this (very quick n dirty):
[Main]
Title=.NET 8
Description=(v8.0.1) .NET 8 is a cross-platform software development framework for building and running applications.
Selected=True
Level=4
Author=Homes32
Version=1.0.9.0
Date=2024-01-19
Mandatory=False
[Variables]
%ProgramTitle%=".NET 8 Desktop Runtime"
%ProgramFolder%="dotnet"
%ProgramVersion%="8.0.1"
%DownloadURLx86%=https://download.visualstudio.microsoft.com/download/pr/ca725693-6de7-4a4d-b8a4-4390b0387c66/ce13f2f016152d9b5f2d3c6537cc415b/windowsdesktop-runtime-8.0.1-win-x86.exe
%DownloadURLx64%=https://download.visualstudio.microsoft.com/download/pr/f18288f6-1732-415b-b577-7fb46510479a/a98239f751a7aed31bc4aa12f348a9bf/windowsdesktop-runtime-8.0.1-win-x64.exe
.
.
.
After building my project I had a WinPE with just DotNET8 but now some older programs (I tested DotNET5 and 6 based) won't start.
Then I just copied the missing folders (in my case 5.0.17, 6.0.26 and 7.0.15) to the right places, just like the picture above shows. I opened the wim with 7zip and just copied them there.
Now after rebuilding the ISO every DotNET program just works flawlessly. The only downside: Integrating every DotNET version in existence will blow up the folder size to well over 1GB, so better just pick what you really need.
Can someone confirm this? I'm using Win11 Enterprise 23H2 10.0.22621.2428 as source.
And more important to me: can someone write a script to integrate multiple DotNET versions based on my findings? I'm way too stupid for that...
Hello, because this is one of my favourite projects out there I want to contribute something.
I was manually integrating some program updates when I stumbled upon an issue with DotNET.
First I updates the Macrium Reflect script, the newest free version is 8.0.7783:
No issues there, everything went fine.
Then I wanted to update Arsenal Image Mounter, newest version is 1.2.14.73 for the driver and 3.11.279 for the GUI. I'm not experienced enough with these scripts to do this and I gave up, but I noticed a problem: The GUI is now based on DotNET8.
Some tests later I realized I need more than just DotNET6, not just for the new Arsenal Image Mounter but for some other programs as well.
Here is how I did it:
the DotNET folder mainly consists of one main exe right inside the "dotnet" folder and sub-folders for every installed DotNET version:

The exe is always the highest installed version (in my case 8.0.1), the older versions are just subfolders without any special registry entries or whatsoever.
So I modified the DotNET6.script to look like this (very quick n dirty):
After building my project I had a WinPE with just DotNET8 but now some older programs (I tested DotNET5 and 6 based) won't start.
Then I just copied the missing folders (in my case 5.0.17, 6.0.26 and 7.0.15) to the right places, just like the picture above shows. I opened the wim with 7zip and just copied them there.
Now after rebuilding the ISO every DotNET program just works flawlessly. The only downside: Integrating every DotNET version in existence will blow up the folder size to well over 1GB, so better just pick what you really need.
Can someone confirm this? I'm using Win11 Enterprise 23H2 10.0.22621.2428 as source.
And more important to me: can someone write a script to integrate multiple DotNET versions based on my findings? I'm way too stupid for that...