Announcement

Collapse
No announcement yet.

VS2017 Support is incomplete and still relies on previous versions.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    [EDITOR] VS2017 Support is incomplete and still relies on previous versions.

    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.

    Click image for larger version

Name:	NET.JPG
Views:	1
Size:	29.7 KB
ID:	1221763

    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:
    Here
    Here
    Here
    Here
    And More...

    This could probably be fixed with a preprocessor macro?

    Line 716:
    Code:
        D3D12_STATE_CACHE_INLINE void FD3D12StateCacheBase::SetPipelineState(FD3D12PipelineState* PSO)
    Becomes:
    Code:
        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:

    Click image for larger version

Name:	error.JPG
Views:	1
Size:	127.3 KB
ID:	1221764

    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...
    Last edited by TheJamsh; 06-11-2017, 04:45 AM.

    #2
    I am getting odd results as well as I only have 2017 installed. I'm not as smart as you and just figured it was something that I was doing, thanks for the detailed information. I think I may need to go back to 2015....

    teak
    "A little bit of nonsense now and then is cherished by the wisest men..."
    -- Willy Wonka

    Smooth Zoom Camera Plugin for 4.22 here.

    Comment


      #3
      I mentioned this in the discord actually. VS2017 gives a lot of problems and I regret upgrading to this crappy Visual Studio. I have issues like VS crashing, hot reloading messed up etc.

      If anyone reading this please don't even think about upgrading to Visual Studio 2017. 2015 works best as of now.
      Unreal Issue Tracker - Desktop App for Unreal Engine Issues
      Unreal Nexus - Create Share and Experience!

      Unreal Engine 4 World-Wide User Map

      [PLUGIN] Aws Gamelift Client Plugin
      [TOOL] Create your own binary release of UE4 from GitHub source
      [Marketplace] Vehicle Soccer Template
      [Marketplace] Objective Waypoint System
      My UE4 Tutorials and Misc Tools

      Lead Programmer at YetiTech Studios
      Your Friendly Neighborhood
      Satheesh PV (a.k.a RyanJon2040) | Twitter, Instagram, Facebook, LinkedIn, YouTube, Google+

      Comment


        #4
        I have to agree with Satheesh, stick to VS2015 for now (though apparently, you still need to have installed 2013 at some point too :/)

        Comment


          #5
          Yeah I tried that first, but it doesn't install the required .NET packages and doesn't alleviate the dependency on previous versions. The output above is trying to point directly to a VS2013 folder.

          Comment


            #6
            You also can't build PhysX with 2017 currently because the BuildPhysX.Automation.cs was not updated, it still only supports 2015:

            https://answers.unrealengine.com/que...7-support.html

            Quite annoying when you try to find what causes some PhysX errors in the log. For being able to set breakpoints in the PhysX code, you need to manually build it. And that doesn't work with 2017.
            Easy to use UMG Mini Map on the UE4 Marketplace.
            Forum thread: https://forums.unrealengine.com/show...-Plug-and-Play

            Comment


              #7
              I have only installed VS2017 on a fresh install of windows 10 with ue4. I have had zero problems with VS. I am currently using 4.16.1, compiled from source. Also, i never installed the .net packs. Could it be possible that the enterprise edition of Windows 10 has something extra over the other versions? As my work pc is windows 10 enterprise.
              Last edited by SaxonRah; 06-11-2017, 11:43 AM.
              Youtube
              Machine Learning C++ Plugin
              Lindenmayer System C++ Plugin

              Comment


                #8
                Originally posted by TheJamsh View Post
                This could probably be fixed with a preprocessor macro?

                Line 716:
                Code:
                    D3D12_STATE_CACHE_INLINE void FD3D12StateCacheBase::SetPipelineState(FD3D12PipelineState* PSO)
                Becomes:
                Code:
                    D3D12_STATE_CACHE_INLINE void SetPipelineState(FD3D12PipelineState* PSO)
                Master branch, 5 days ago
                https://github.com/EpicGames/UnrealE...110799dbb12b85

                Comment


                  #9
                  Originally posted by ryanjon2040 View Post
                  If anyone reading this please don't even think about upgrading to Visual Studio 2017. 2015 works best as of now.
                  Too late :P

                  Actually, not really.
                  Have both installed
                  We've started using to VS2017 to see if it runs ok.
                  Haven't had any issues, but then again, we already had VS2015 installed.
                  Rule#21: Be polite, be professional, but have a plan to kill everyone you meet.

                  Comment


                    #10
                    Originally posted by John Alcatraz View Post
                    You also can't build PhysX with 2017 currently because the BuildPhysX.Automation.cs was not updated, it still only supports 2015:

                    https://answers.unrealengine.com/que...7-support.html

                    Quite annoying when you try to find what causes some PhysX errors in the log. For being able to set breakpoints in the PhysX code, you need to manually build it. And that doesn't work with 2017.
                    And, the PopcornFX SDK is does not work with VS 2017. I just went back to 2015 and everything is working!

                    teak
                    "A little bit of nonsense now and then is cherished by the wisest men..."
                    -- Willy Wonka

                    Smooth Zoom Camera Plugin for 4.22 here.

                    Comment


                      #11
                      Originally posted by kjustynski View Post
                      Nice... That's one down!

                      Comment


                        #12
                        Originally posted by TheJamsh View Post
                        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.
                        I can't agree with this. I also had a fresh installation today and I have installed VS 2017 only and it works perfectly fine. You should know that Visual Studio 2017 ships with less software code than previous versions and that you need to install the Windows 8.1 SDK seperately...

                        I installed the windows 8.1 sdk before Visual Studio 2017 (though the order doesnt matter) and I use my old project on my new machine without any hitches...

                        Comment


                          #13
                          That's exactly what I did.

                          I get the feeling that some of the components I was missing, you guys may have installed via other software. Visual Studio 2017 / Unreal were the first things I installed (after obligatory firefox installation) after wiping my PC, and I followed the instructions in the documentation exactly.

                          Also bear this in mind - I'm building the engine using the Build Graph from Source (I download source, build engine once in VS, then I use the automation tool to build a binary version for distribution). After installing the .NET frameworks the engine would build from source, but I STILL can't build it for distribution because of the dependencies on VS2013 components.

                          Additionally, if you try to exclude VS2012 and VS2013 packages from the Source download, then engine will still fail to build. If the engine was truly dependent on 2017, none of these prior dependencies should exist. You can clearly see in the output window above a dependency on VS2013.
                          Last edited by TheJamsh; 07-04-2017, 12:57 PM.

                          Comment


                            #14
                            Building the UE4.sln works for me with just vs 2017, though I haven't tried the installed build yet.

                            Comment


                              #15
                              VS2017 seems to work for me except for one thing...

                              I use Enum::Count for static array editor properties because it gets nicely displayed in the editor as named enums as the index instead of ints
                              UPROPERTY(EditDefaultsOnly, Meta = (tooltip = "Colors for Item and Status text during each state"))
                              FLinearColor TextColors[EButtonState::Count];
                              So the above worked in VS2015, but in VS2017, I need to do this to make it compile...
                              UPROPERTY(EditDefaultsOnly, Meta = (tooltip = "Colors for Item and Status text during each state"))
                              FLinearColor TextColors[static_cast<uint8>(EButtonState::Count)];
                              ... or else I get the error about EButtonState::Count not being an int. But doing so means I lose those enum-named indexes for array entries of that property. Anyone else running into this? Is there a workaround?

                              Comment

                              Working...
                              X