New C++ project: Visual Studio 2015 Update 3 required. I have Update 3

I believe I found the issue and a workaround. This problem is due to the way that Unreal Engine looks for the MSBuild.exe program that is used in the GenerateProjectFiles.bat script. It first looks for MSBuild 14, which is the one used for Visual Studio 2015. If it can’t find it, THEN it looks for MSBuild 15 (used for VS 2017). So if you have your PC currently has MSBuild 14 installed on it, that is what will be used.

The workaround is to remove or rename the MSBuild 14 install directory located most likely at ProgramFiles(x86)/MSBuild/14.0. I chose to rename it to “OLD14.0” in case I need to bring it back.

After this, attempt to create a new C++ project. It should now use the MSBuild 15 in the background to generate the correct VS 2017 files for your project.

I think the actual solution to this issue is to change the GetMSBuildPath.bat file to by default look for MSBuild 15 exe instead of 14.

EDIT: If this did not fix your issue, it may be because the Registry Key that points to MSBuild 14 on your machine is pointing to something other than the default location in Program Files shown above. If that is the case, you would need to look in the registry to find the “Microsoft\MSBuild\ToolsVersions\14.0” registry key in either the Current User or the Local Machine Software stores.

If you have source access, you can see the order that this process happens in the “/Engine/Build/BatchFiles/GetMSBuildPath.bat” file. I have a PR up to make it so the batch file attempts to find MsBuild 15 first and use that if found.

https://github.com/EpicGames/UnrealEngine/pull/3879

Hi there; I recently installed version 4.17.0 and tried creating a new C++ project. Upon trying to compile it I receive an error notifying me that I must have Visual Studio 2015 Update 3 installed:

1>------ Rebuild All started: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
2>------ Rebuild All started: Project: MyProject, Configuration: Development_Editor x64 ------
2>Cleaning MyProjectEditor Binaries...
1>@rem Nothing to do.
2>Creating makefile for MyProjectEditor (no existing makefile)
2>Performing full C++ include scan (no include cache file)
2>Parsing headers for MyProjectEditor
2>  Running UnrealHeaderTool "D:\Users\cw_si\Documents\Unreal Projects\MyProject\MyProject.uproject" "D:\Users\cw_si\Documents\Unreal Projects\MyProject\Intermediate\Build\Win64\MyProjectEditor\Development\MyProjectEditor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -installed
2>Reflection code generated for MyProjectEditor in 7.8170407 seconds
2>Performing 9 actions (4 in parallel)
2>[2/9] Resource ModuleVersionResource.rc.inl
2>[3/9] Resource PCLaunch.rc
2>cl : Command line warning D9002: ignoring unknown option '/source-charset:utf-8'
2>SharedPCH.Engine.cpp
2>cl : Command line warning D9002: ignoring unknown option '/execution-charset:utf-8'
2>d:\program files\epic games\ue_4.17\engine\source\runtime\core\public\Windows/WindowsPlatformCompilerSetup.h(19): error C2338: Visual Studio 2015 Update 3 is required to compile on Windows (http://go.microsoft.com/fwlink/?LinkId=691129)
2>ERROR : UBT error : Failed to produce item: D:\Users\cw_si\Documents\Unreal Projects\MyProject\Binaries\Win64\UE4Editor-MyProject.dll
2>Total build time: 24.53 seconds (Local executor: 0.00 seconds)
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.MakeFile.Targets(42,5): error MSB3073: The command ""D:\Program Files\Epic Games\UE_4.17\Engine\Build\BatchFiles\Rebuild.bat" MyProjectEditor Win64 Development "D:\Users\cw_si\Documents\Unreal Projects\MyProject\MyProject.uproject" -waitmutex" exited with code -1.
2>Done building project "MyProject.vcxproj" -- FAILED.
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========

I have Visual Studio 2017 as well as 2015 Update 3 installed. I’ve tried rebuilding with both and recieve the same error. 4.15 and 4.16 work fine. Any suggestions?

I have the exact same problem. Running VS 2017 and Unreal Engine 4.17. I had older versions of UE and Visual Studio installed. It seems Unreal Engine still tries to generate new C++ projects as VS 2015 projects instead of 2017. Maybe UE has some setting somewhere that controls how new VS projects should be created, and didn’t override that once I installed VS 2017?

Here is the order I installed things in, maybe helpful:

  1. Installed UE 4.14 a few months ago
  2. Installed VS 2015 Community Edition with Update 1
  3. Installed UE 4.17 today
  4. Tried to create a UE C++ project. Received the C2338 Error shown above
  5. Installed VS 2017 Community Edition
  6. GOTO 4. Same problem
  7. Created Blueprint project and then set the Editor Config > Source to Visual Studio 2017 (was just set to Visual Studio)
  8. GOTO 4. Same problem

Additional info, the solution it does create is a VS 2015 solution. If I open that up in VS 2017, it shows (Visual Studio 2015) in the Solution Explorer next to the Project Name.

Is there a way we can reset the Unreal Engine to assume only VS 2017 is installed, and to create VS 2017 projects and solutions?

I also have this issue and renaming MSBuild folder didn’t help.
Tried upgrading 3 of my projects 2 have the error “Visual Studio 2015 Update 3 required”

I deleted the intermediate folder for one of the projects and regen VS files, regen runs fine but then when opening .sln file get the error can’t find UE.vcxproj and MyProject.vcxproj files. Checked and the intermediate folder now only has a “Build” folder, “ProjectFiles” folder hasn’t even been created

Was on 4.16.3 before with all 3 projects.

Tried a new 4.17 c++ project got error when trying do the initial compile (before even opening VS)
“Running C:/Program Files/Epic Games/UE_4.17/Engine/Binaries/DotNET/UnrealBuildTool.exe Test Development Win64 -project=“C:/Users/fishy/Documents/Unreal Projects/Test/Test.uproject” -editorrecompile -progress -NoHotReloadFromIDE”
“ERROR: Multiple configurations specified on command line (first Test, then Development)”

after that error if I try to open with VS and compile i get the first error of wrong VS version…

Would love a solution as can’t do anything on 4.17 at the moment?

Yeah; unfortunately I can’t say any of these worked for me. Tried renaming 14.0, deleting it, editing the registry key… none of those or any combination thereof worked. :frowning: This sucks because I’ve been developing a plugin that I need to rebuild with 4.17, but can’t do anything at the moment.

Bumping… My plugin is basically in limbo until this is figured out

I had to reinstall 2015sp3. That has worked for me.
Download the Installer

That worked for me; never would have thought it. Thanks for the help! (Still, seems a bit hacky to me though–wish Epic would hotfix this issue.)

I’m having the same issue on multiple computers at my office. The fix below in the Accepted answer didn’t work for the first computer I tried it on (in the process of getting the other computers to work).

I was able to get my personal workstation to build by completely uninstalling VS2015, but this solution will not be acceptable on every computer my company needs 4.17 on. Epic Staff we need help!

The latest version of 2017 and into the future will need this added to “/Engine/Build/BatchFiles/GetMSBuildPath.bat”

set MSBUILD_EXE=

rem ## Try to get the MSBuild 15.0 path directly (see https://github.com/Microsoft/vswhere)

for /f "delims=" %%i in ('"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath') do (
  set InstallDir=%%i
  if exist "%InstallDir%\MSBuild\15.0\Bin\MSBuild.exe" (
    set MSBUILD_EXE="%InstallDir%\MSBuild\15.0\Bin\MSBuild.exe"
    goto Succeeded
  )
)

rem ## Try to get the MSBuild 14.0 path directly (see https://msdn.microsoft.com/en-us/library/hh162058(v=vs.120).aspx)

if exist "%ProgramFiles(x86)%\MSBuild\14.0\bin\MSBuild.exe" (
	set MSBUILD_EXE="%ProgramFiles(x86)%\MSBuild\14.0\bin\MSBuild.exe"
	goto Succeeded
)

Can confirm this worked!

only that the vswhere command does not return anything on my machine. Short of putting in the path manually, I am stuck. :confused: