Revert By default use 32bit runtime when 64bit runtime is not installed#12
Revert By default use 32bit runtime when 64bit runtime is not installed#12Metadorius merged 2 commits intomasterfrom
Conversation
|
So what would be the new behavior then? |
In the above scenario, it would simply know to prompt you to install x64 net7. |
That I understood, what about the general effect? It would always seek for the .NET 7 of user's OS bitness, did I get it right? |
That is correct. This is necessary, due to a change by Microsoft in when the PATH variable gets set during .NET installation. |
There is a scenario that warrants this removal:
If a user has only the x86 net7 runtime installed and a x64 PRE-net7 (net6) runtime installed, this scenario will happen.
The issue is that once we get to the new net7 updater, it by default simply calls
dotnet secondstageupater.dllto perform the update. The problem is that the x64 net6 runtime in the scenario above will be called in this case, because the PATH variable will default to it.Steps to reproduce:
This is because once we've made it to the first client version that is on net7 (client version 9.0 in the example above), the updater attempts to call
dotnet secondstageupdater.dllfor the next update. With the currently installed versions of dotnet above, the PATH variable will default to the x64 net6 installation. So, callingdotnet seconddstageupdater.dllwill attempt to use this x64 net6 dotnet which will be unable to launch the net7 based instance of thesecondstageupdater.dllBeing that the client launcher is the starting point for ALL that is the user experience of the client (the client itself, the updater, etc...), it makes the most sense to put this necessary check into the launcher itself, rather than the updater. It'll also yep facilitate the possible and eventual move to a net7 launcher.