Issues when generating project files for UE5.6

Hi,

Getting warnings when running “GenerateProjectFiles.bat” for UE5.6.0 release see down below.

When building for 5.5 it uses the version that 5.6 wants to use. The folders for other versions of MSVC do exist so it seems that UE5.6 just looks for highest version in the “C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC” directory, and I don’t even have 14.44.35209, only 14.44.35207.

I tried uninstalling the other versions of MSVC from VSI but still around.

Secondly what is the best version for 5.5 then?

Building with 5.5:

Building UnrealPak and P1GameClient…

UnrealPak: Using Visual Studio 2022 14.38.33145 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).

P1GameClient: Using Visual Studio 2022 14.38.33145 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).

Issue with 5.6.0:

Generating VisualStudio project files:

Adding projects for all targets…

Adding projects for all targets took 1.46s

Adding projects for all game projects took 0.01s

Adding projects for all modules took 0.68s

Compiling Rules Assemblies 100%

Creating Build Targets 100%

Creating Build Targets took 3.84s

Binding IntelliSense data… 100%

Binding IntelliSense data took 7.20s

Writing project files…

Available arm64 toolchains (1):

Forcing LEGACY XCODE because host OS is not Mac

* C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.44.35207

(Family=14.44.35207, FamilyRank=1, Version=14.44.35209, HostArchitecture=x64, ReleaseChannel=Latest, Architecture=arm64)

Unavailable arm64 toolchains (2):

* C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.34.31933

(Family=14.34.31933, FamilyRank=1, Version=14.34.31948, HostArchitecture=x64, ReleaseChannel=Latest, Architecture=arm64, Error=“UnrealBuildTool requires at minimum the MSVC 14.38.33130 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.”)

* C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.33.31629

(Family=14.33.31629, FamilyRank=1, Version=14.33.31631, HostArchitecture=x64, ReleaseChannel=Latest, Architecture=arm64, Error=“UnrealBuildTool requires at minimum the MSVC 14.38.33130 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.”)

Visual Studio 2022 compiler version 14.44.35209 is not a preferred version. Please use the latest preferred version 14.38.33130

Writing project files… 100%

Writing project files took 2.96s

Generating QueryTargets data for editor…

Compiling Rules Assemblies 100%

Writing Query Target Info 100%

Generating QueryTargets data for editor took 0.76s

Result: Succeeded

To confirm when building 5.6.0

2>Using Visual Studio 2022 14.38.33145 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).

So it seems like the code is just finding latest and throwing a “warning” but using the correct version.

Hey there,

Warning - some technical verbosity ahead for posterity (this is a common confusion/friction point for licensees!).

So Windows_SDK.json (5.5, 5.6) is the primary mechanism that controls the toolchain version (with {PLATFORM_NAME}_SDK.json being the file for other platforms).

These are also overridable via the following properties which are used in UEBuildWindows.cs (5.5, 5.6):

  • VCToolchainVersion (command line & BuildConfiguration.xml)

  • CompileVersion (command line & BuildConfiguration.xml)

  • FWIW, the minimal version hasn’t changed between 5.5 and 5.6: 14.38.33130, and the preferred versions being a range (PreferredVisualCppVersions) - so I can see where it’s adding these logs (albeit still just Informational). There are several invocations to ValidateToolchainVersion throughout the codebase, so getting a better sense where your observed lines are hitting this would be insightful (Makefile diagnostic? Evaluating the Target info?)

Fundamentally, TryGetToolChainDir is the primary code responsible for obtaining the toolchain directory. SelectToolChain invocation attempts to filter down the set of discovered Toolchains (which comes from FindToolChainInstallations - which is also pre-cached via HasValidCompiler->…->AddVisualCppToolChain). From my local setup I have quite a few installed (show below), and the primary reason for correct selection is that the Error string is not set.

Recursing back to your original note here that it’s a “warning” - is this actually manifesting as an error/warning on your side?

Kind regards,

Julian

Hey Simon,

Thanks for this. [mention removed]​ is there anything else we would need to dig into this a bit more? I’ve not looked at the ARM toolchain at all.

Kind regards,

Julian

I got rid of any warnings by uninstalling all ARM modules from VSI.

Thanks for the help.

Best,

Simon

Hey,

So I didn’t notice before but its actually complaining about ARM installation.

So here tests I did.

Had 2 PC’s with the same complaint of wrong ARM installations. On one of them I installed all ARM (17.38) toolchains; ARM, ARMEC.

The warnings went away the ones that were coming through in “yellow” and the ARMEC one that was in “white”.

Used the same .vsconfig on the 2nd PC but still got the “white” text warning about ARMEC. Cannot get that one to go away.

Went back to the 1st PC where I got all warnings to go away and modified to remove ALL Arm installations, did that re-ran “GenerateProjectFiles.bat” and didn’t get any warnings.

So one PC with no ARM installed doesn’t complain now and 2nd PC won’t get rid of the ARMEC warning.

So something not right in the detection code.

Hope the extra info helps.

Thanks,

Simon

GenerateProjectFiles generates configurations for both x64 and arm64 windows targets by default, the warning is noting that you don’t have a preferred version of MSVC for arm64 installed, but if you don’t need that architecture for your work the warning is innocuous. We can look into suppressing that message but probably not for a 5.6 hotfix.