Visual Studio 2017 RC

Here are the pains of the new Visual Studio 2017 RC today.

Unreal 4.14 was working ok with the VS 15 Preview 5.

VS2017 changed installation paths, so Unreal 4.14 cannot find the build tools, looking for them in:
“C:\Program Files (x86)\Microsoft Visual Studio\VS15Preview\Common7\IDE\VisualCpp\Tools\MSVC\14.10.24516.00\bin\HostX64\x64\link.exe”
whereas they are now in:
“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.24629\bin\HostX64\x64\link.exe”

This requires to install the older Visual C++ Build Tools 2015, which MS still did not include as promised in 2017, seperately available at:

It adds around another 2gb, and it is so slow to uninstall, that I resorted to system restore.
After this installation, the VS project files need to be regenerated by Unreal to use 2015 again.

Notice, Unreal 4.14 looked like it was using the new VS15 Preview 5 tools in the path above just fine. Their location seem to be hardcoded somewhere in the Unreal Build tool.

Next problem is with Intellisense which hangs the entire IDE while scanning Unreal Engine includes. It was ok in Preview 5. This requires a disable of the whole database system. I tried disabling just the automatic preheader generation, and it did not work…

Furthermore, the Visual Assist Build 2114 does not support VS 2017 RC.

I think I’ll keep with 2015 for a bit longer…

teak

Alright, the hung IDE from scanning #includes seems to have settled down. First I deleted the Intermediate and .vs dirs, and regenerated the VS files. It was still hanging the IDE eventually, but this time the with a single CPU core all busy and no File access, last time it was a hang IDE with no CPU, no File access, and no memory activity. Had to kill process a few more times…

What finally helped was Unloading the Engine/UE4 from the Solution right away, and letting it scan the Games project only. Later reloading the Engine/UE4 allowed it to complete the scan without a hang. Probably, there is a parallelism deadlock type bug going on.

I also have Disable External Dependencies Folder = True. It looks like this has no effect on scanning, but it solves another annoying bug. Any file you open that is not specifically listed under the project but is listed instead under the External Dependencies Folder opens the file path in ALL CAPS behind the scenes. You can see this in the tooltip of the editor tab for the file. When you save such a file, it removes the original filename casing to all caps… This can explain your source filenames unexpectedly converting to all caps, as you navigate to definitions in files not listed in the project.

Skimmed over the Unreal Build .NET source code a bit. It is a bit unsure about the VS 15/2017 handling. It must be pulling the old …VS15Preview… dir from perhaps a leftover registry setting. I am hoping that the Unreal team will update this soon to remove the dependence on Visual C++ Build Tools 2015, as these old installation packages are loaded with more MS spam technologies. This is the reason I can not stand going back and installing VS 2015, Windows Phone SQL Azure 9GB what?, with bare C++ selected?

There is a commit that fixes the 2017 issue…FYI. Should be out in 4.14.1…

teak

Thank you teak!

I have been compiling the Engine/Master headed for 4.14.1, and yes it has become capable of using the VC++ 2017 v141 (MSBuild\15.0) toolset without any further dependence on the older installation of Visual C++ Build Tools 2015 (MSBuild\14.0). Here is how I dealt with some of the obstacles:

You have to uninstall “Visual C++ Build Tools 2015”, otherwise GetMSBuildPath.bat defaults to using the older (MSBuild\14.0) toolset. I uninstalled everything VS related, and started fresh, selecting the following minimum components:

VC++ 2017 v141 toolset (x86,x64)
Visual Studio C++ core features
Static analysis tools (needed by above)
Text Template Transformation (needed by above)

Windows SDK 8.1
Windows Universal CRT SDK (needed by above)

C# and Visual Basic Roslyn compilers
.NET Framework 4.5 Targeting pack
.NET Framework 4.6.2 SDK

I tried all kinds of .NET combinations above, but still could not get the Unreal Build Tool (UBT) to compile the SwarmInterface module without intervention, see below.

When you GenerateProjectFiles, Unreal now generates new VS 2017 (15.0.25807.0) files. Upon opening the solution file, you will be asked about “Lightweight load”, say NO and skip, otherwise the same file will crash VS the next time you open it. You can fix this crash by deleting the .vs dir, but pay attention to resetting the build configuration to Development Editor Win64. Here is more info on the broken Lightweight load:

When building the engine, UBT will eventually fail on SwarmInterface.cpp, unable to find “metahost.h”, even though it is installed in “C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.2\Include\um”.

So copy the contents:

From: C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.2\Include\um
To: C:\Program Files (x86)\Windows Kits\8.1\Include\um

From: C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.2\Lib\um
To: C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um

Sorry to bump this. VS2017 doesn’t work even i already followed above step inclucing installing vs2015 v140 toolchains :frowning: so i have to install and stick with vs2015 is the best choice now.

Seemed to work fine for me.

Me too. My problem is now that the “loading Visual Studio 2017” popup never goes away. VS loads, I use it, close it down… still says “Loading…” in the editor?

I have the same problem with the “loading Visual Studio 2017” popup. I’m using Unreal Engine 4.15.2 and Visual Studio Community 2017 version 15.1 (26403.7).