I am running into numerous issues trying to use Visual Studio 2017 with UE 4.16 when it comes to compiling the engine from source. Since VS2017 is now officially supported it would be nice to see these issues addressed, be it via a hotfix or at least in the release branch. This is immensely frustrating because working with source is not a fast process at the best of times, and I am losing hours and days to these problems.
It seems as though it is NOT possible to use Visual Studio 2017 with Unreal Engine, unless you have had prior versions of Visual Studio installed beforehand. There are a lot of dependencies in the engine on older versions of VS, so if (like me) you have recently formatted your machine and have a clean install of VS 2017, lots of things will fail. The important point here is that as far as my machine is concerned, the only version of VS that’s ever been installed is 2017.
First problem I’ve run into is that the install guide for VS 2017 on this documentation page is wrong. You NEED to also the .NET Frameworks targeting packs otherwise UBT / UHT etc. will not run.
Next, you need to navigate to D3D12StateCachePrivate.h, and change the following lines because they are not supported in VS2017. There are a multitude of answerhub posts on this:
This could probably be fixed with a preprocessor macro?
D3D12_STATE_CACHE_INLINE void FD3D12StateCacheBase::SetPipelineState(FD3D12PipelineState* PSO)
D3D12_STATE_CACHE_INLINE void SetPipelineState(FD3D12PipelineState* PSO)
Now I’m facing a new issue. I’m using the BuildGraph system to try and make an installed version of the engine so that I can easily work with my own custom builds and also distribute them to other PC’s on my network. I now can’t package the engine into an installed build, because of a dependency on Visual Studio Version 12.0! (VS2013). I’ve just lost about an hour of time to the Automation Tool only to be met with this:
This is probably only the tip of the Iceberg. I have no idea what other dependency issues I might run into ones UAT gets further through the build. At this point the solution would be to first install VS 2013, then 2015, then 2017 again. Far from ideal…