The problem is in new UnrealVersionSelector in EGS Laucher:
Epic Games\Launcher\Engine\Binaries\Win64\UnrealVersionSelector.exe
I replaced it (temporary) by another one (from UE 4.27, old sources build) and it’s works now! They updated Launcher and this breaks work with UE4 projects…
I need more time to investigate what exactly changed, but I try to do same thing in VM and have same results: UE4 uprojects can’t generate *.sln.
P.S. Problem in code (last string):
FString FDesktopPlatformBase::GetUnrealBuildToolExecutableFilename(const FString& RootDir) const
{
FConfigFile Config;
if (FConfigCacheIni::LoadExternalIniFile(Config, TEXT("Engine"), *FPaths::Combine(RootDir, TEXT("Engine/Config/")), *FPaths::Combine(RootDir, TEXT("Engine/Config/")), true, NULL, false, /*bWriteDestIni*/ false))
{
FString Entry;
if( Config.GetString( TEXT("PlatformPaths"), TEXT("UnrealBuildTool"), Entry ))
{
FString NewPath = FPaths::ConvertRelativePathToFull(RootDir / Entry);
return NewPath;
}
}
return FPaths::ConvertRelativePathToFull(RootDir / TEXT("Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.exe")); // Only valid for UE5!
}
You can fix it in code, but also it’s can be simple fixed in DefaultEngine.ini (per project) or in BaseEngine.ini (per Engine). Just add this:
[PlatformPaths]
UnrealBuildTool=Engine/Binaries/DotNET/UnrealBuildTool.exe