Well I ran the VS updater again and updated to 15.7.3, re-installed the UE4 installer, created a new C++ project and it seems to load OK into Visual Studio.
But I still can’t load the existing project, it just shows as incompatible still.
I did manage to get it working again, thought it seems a bit unreliable. I loaded my project through the launcher (instead of opening uproject from explorer), regenerated the solution, loaded into visual studio, the right clicked on the project and selected reload. Then it came up.
But if I load uproject from explorer or load the visual studio solution file directly, it breaks. This worked for one project, another one I couldn’t even load at all because it kept trying to recompile and failing on load so I couldn’t even open it.
This is a pretty niche answer, but I will provide it here in case it helps anyone. I had both v140 (2015) and v141 (2017) build tools installed for Visual Studio. The reason was that I sometimes had to use v140 build tools for stuff such as setting up amazon gamelift. However, I wanted to continue building my Unreal projects using v141 so I deleted the v140 tools. What I forgot to do was delete the VCTargetsPath variable that I set to the location of the v140 tools in my environment variables.
After doing so, I had to do some other things such as re-generating the visual studio files as well as cleaning the project before building again. Note that you may still have to right-click the project files and select “Reload Project”.
What worked for me is, in “editor preferences”, under “General - source code” change the source code editor to what you want. after restarting the editor and closing again. you can generate solution via uproject file and open the solution with the right version.
for me, i have a 4.27 unreal project and it sais that it is incompatible with vs 2019. after doing what i descriped it is compatible again with vs 2019