[Preview 7] Critical Bug ~ Cant run UE4 after VS 2015 update 1

Dear Epic,

A client of mine upgraded to 4.11.7, and tried to generate VS files from the .uproject.

The vs files being generated are for 2013, unlike 4.10 and 4.11.6

My client stays up to date with VS updates and there was a recent VS 2015 update.

My client on his current machine can still generate VS files for 4.10 and they generate for VS 2015 perfectly fine with the following header:

//.sln header that is correct
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1

#The Issue

The header that is being generated in the .sln file for 4.11.7 .uprojects is:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
# UnrealEngineGeneratedSolutionVersion=1.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Engine", "Engine", "{C9820C7D-A64C-4CD7-BF6C-5A654CA3ABF5}"
EndProject

When my client tries to generate for 4.11.7 uprojects, the .sln is created for 2013.

My client then deleted VS 2013 from his computer.

This did not change the way UE4 is generating the VS files, and consequently he can no longer work on the project because 4.11.7 simply will not generate VS files for 2015, and he deleted 2013.

Can you provide any insight into this matter?

4.11.6 was generating for 2015 just fine.

4.10 still generates for 2015 just fine

But 4.11.7 is generated .slns for 2013.

Here is the update link for VS 2015 that was installed

But if it was just a VS update, how come 4.10 still generates for VS 2015 correctly unlike 11.7 ?

Thanks!

Rama

Hey Rama-

If your client has either PS4 or Android SDK installed then this is expected as VS2013 is required for them. Can you confirm if they have either of these SDKs installed?

I am the client (thanks Rama) so I will step in. Short answer is yes, that is absolutely the case: I have the android SDK installed and have done so recently along with the preview 7 update. So that is probably the issue…however, I can not be constrained to VS 2013…android development is not the only development I do, and I have specific requirements for VS 2015 in most other projects which are intended only to package for PC.

So if it is the case the Unreal enforces 2013 if I have android SDK installed, then this should really be made clear and not implicitly done. Further, I need a way to override this; if using 2015 would prevent me from deploying to android, fine, but I still need the ability to create vs 2015 based projects and work in them…particularly projects that are meant to be packaged only for PC. How can I override this behavior?

Thank you for replying Doug!

As gbrill mentions below, what can he do to toggle the Android SDK enforcement of 2013 on/off so he can continue development on ther projects?

Thanks for your help Doug!

Rama

You should be able to pass -2015 when invoking GenerateProjectFiles.bat (you may want to set-up a shortcut to do this). This should override the 2013 fallback that the Android SDK is causing.

Same problem. I try to update to 4.11 and it say’s it can’t find 2013 tools. Is this going to be fixed?

Hey sgehrman-

Did you try passing -2015 when running GenerateProjectFiles.bat? If you are still having problems after this can you elaborate on the full error message you’re getting?

There are no instructions on how to do this. I’m not a Windows expert. Switched from Mac OS a while ago. 1) How do you do this. 2) Seems very weird that this is broken. 3) Is it going to be fixed?

Since the PS4 and Android SDKs require VS2013, a 2013 solution is automatically generated if either is detected on your computer. This is the intended behavior. To generate a 2015 solution, you can open the command prompt window and change the directory to the folder where the engine exists. After running Setup.bat normally, you can use the line GenerateProejctFiles.bat -2015 (note the space between ‘bat’ and ‘-’). When this finishes running it will produce a 2015 solution.

Can we get further clarification on “running setup.bat” normally? I don’t normally run that, haven’t needed to…my workflow is you right-click on the uproject and select “generate visual studio project files”. Is that context menu just a call to to setup.bat or generateprojectfiles.bat"?

Ideally, Unreal would not make these decisions for us…because you might have 100 2015 projects, you do an android project, and from then on, your are VS 2013. I would suggest adding to the right context menu both options, such as "Generate 2013 Project Fies (Suggested as Android sdk is installed) and “Generate 2015 Project files (Not recommended)”. Can I suggest that as a “feature” request?

no idea how to do that. which folder to I go to? do I use a terminal app?

Thank you for this info Jamie!

:slight_smile:

Rama

(sorry about my late reply!)

Dear Doug / Jamie,

" To generate a 2015 solution, you can open the command prompt window and change the directory to the folder where the engine exists. After running Setup.bat normally, you can use the line GenerateProejctFiles.bat -2015 (note the space between ‘bat’ and ‘-’). When this finishes running it will produce a 2015 solution."

So you are saying that we have to use a custom engine build for Android Development, right?

I think that’s the missing link in everyone’s explanations, because I dont find GenerateProjectFiles.bat in launcher 4.11, only RocketGenerateProjectFIles which doesnt work

Also, this is for the engine right?

How do I generate VS files for the actual project, not the whole engine?

Can you give the entire command for creating 2015 VS files for a project, and I presume this is with a custom engine build?

like:

EngineInstall/GenerateProjectFIles YourProjectDir/Project.uproject -2015

or is it something else?

It seems to me that a custom engine build is mandatory for Android development, based on the fact that we have to build in 2015 for the main project but use 2013 for android, and switching back and forth requires -2015 with GenerateProjectFiles.

Is this correct?

Still would love to see a full commandline for using GenerateProjectFiles :slight_smile:

I will be happy to write a wiki on this once you help me figure it all out.

#Thanks!

Rama

Hey Rama,

I have to apologize, I was confused and was giving instructions for the GenerateProjectFiles.bat that’s associated with engine setup. Though the right click menu does not have a manual override for running Generate Visual Studio project files, it can still be ran from the command line with the following setup/arguments:

GenerateProjectFiles.bat -2015 -project= -game -engine

Per Doug’s latest answer, I think we may be answering a different question than is being asked. The generateprojectfiles.bat DOES NOT EXIST in an ordinary installation of ue4 (what I am working with). I DO see it if I install the ue4 sources from github. But I want to be clear:

*We are not asking about building the UE4 game engine with 2015. We are asking about generating vs project files in 2015 for our game, whatever game that may be.

I don’t want to build ue4, I just want to be able to create a new project and generate vs 2015 project files for it. This can’t be done right now if Android Works is installed…and we don’t have “generateprojectfiles.bat” in a regular ue4 install.

So, assuming I have a project called SomeProject.uproject and an ordinary ue4 install (that does not have generateprojectfiles.bat) && I have Android Works installed (so it will only default to 2013) ,how do I create VS 2015 project files?

Hey gbrill-

It seems a portion of the command line that I included with my last comment was not added. After the -project= section you need to include the path to the project:

GenerateProjectFiles.bat -2015 -project=“FullPathToUproject” -game -engine

This should then generate the project’s .sln as a 2015 solution rather than a 2013 solution.

Ok, I get that but that leaves one key question I’d appreciate if you could rule on: GenerateProjectFiles.bat ONLY exists in the source pull from git of UE4 (I verified this, it does not come with the standard ue4 install). So, a developer who does not have the source will NOT have this .bat file and therefore is required to download the ue4 source so as to get this batch file.

Do I have that right?

Thank you for the response Doug!

Can you just confirm one thing for me, this GenerateProjectFiles is only part of custom engine builds right? I dont see it in launcher builds anywhere.

So this means that we need custom engine build for proper Android development, right?

I hope you have a lovely day!

Rama

After further testing I was able to convert a 2013 solution for a binary version of the engine. To do so I had to navigate to where the binary engine is installed and then follow the file path to Epic Games\4.11\Engine\Binaries\DotNET\ . Opening the command prompt window in this location, the following command was able to build the solution for me:

UnrealBuildTool.exe -2015 -projectfiles -project=“Path\To\Your\Project\ProjectName.uproject” -game -rocket -progress

This is essentially the process that runs when you select Generate Visual Studio project files. The quotes in the file path are necessary only if there is a space in the folder structure leading to the project.

Cheers

Doug Wilson

Great! Thank you, this clarification helps enormously.