[Solved] Error: cannot find atlbase.h when compiling in VS2013 Express?

The fix for this problem is to change UEBuildWindows.cs.

The property bHasVisualStudioDTE will return true if you have more than one version of visual studio (and one of them is not express).

The fix is to add a check for the environment variable VisualStudioEdition (which exists in 2013 express).

The function becomes:

/** True if VS EnvDTE is available (false when building using Visual Studio Express) */
public static bool bHasVisualStudioDTE
{
	get
	{
		string envVSEdition = System.Environment.GetEnvironmentVariable("VisualStudioEdition");
		if (envVSEdition != null && envVSEdition.ToLower().IndexOf("express") != -1)
		{
			return false;
		}

		try
		{
			// Interrogate the Win32 registry
			return RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry32).OpenSubKey("VisualStudio.DTE") != null;
		}
		catch(Exception) 
		{
			return false;
		}
	}
}