There is a possible logic bug in Visual Studio 2015's vcvarsqueryregistry.bat where it locates the include path for the Universal CRT by looking at the last folder in the specified location. This seems to work fine in most cases, except when Windows Driver Kit is installed. Windows Driver Kit apparently adds an additional folder named "wdf" in the specified location, which vcvarsqueryregistry.bat then incorrectly interprets to be the include path. This results in a build failure.

UBT seems to use the same logic to get the version of the Universal CRT to use. This results in build failures in Visual Studio 2015.

Steps to Reproduce
  1. Open VCEnvironment.cs
  2. Locate the FindUniversalCRTVersion() function.
    • Line 560 in CL 2740839.

The comment immediately above the function appears to indicate the function uses the same logic as VCVarsQueryRegistry.bat, which would result in the wrong data being returned if Windows Driver Kit is installed.

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

Login to Vote

ComponentUE - Foundation - Cpp Tools - UnrealBuildTool
Affects Versions4.104.11
Target Fix4.11
Fix Commit2838032
Main Commit2839850
Release Commit2838032
CreatedOct 26, 2015
ResolvedJan 21, 2016
UpdatedApr 27, 2018