Cannot compile UnrealGameSyncLauncher due to missing assembly reference

I’m in the process of setting up UGS, but I’m unable to compile the UGSLauncher because I keep getting this error:

CS0246 The type or namespace name ‘DetectProjectSettingsTask’ could not be found (are you missing a using directive or an assembly reference?)

That error points to the DetectProjectSettingsTask object in this function in DeploymentSettings.cs:
public delegate bool DetectProjectSettingsEvent(DetectProjectSettingsTask Task, TextWriter Log, out string Error);

I tried to add the UnrealGameSync project as a reference to UGSLauncher, but that gave me a few errors. One of them was this:
‘DetectProjectSettingsTask’ is inaccessible due to its protection level.
And another of interest was:
MSB3270: There was a mismatch between the processor architecture of the project being built “MSIL” and the processor architecture of the reference “…\UE4\Engine\Source\Programs\UnrealGameSync\UnrealGameSync\bin\x86\Release\UnrealGameSync.exe”, “x86”. This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.

All of the .csproj files are targeting .NET 4.5. Any ideas on what else to try?

What’s happening is that you are trying to build UGS for a target platform other than MixedPlatform, i.e. x86. Epic forgot to add the conditional compilation symbol UGS_LAUNCHER for those platforms.

You have two options:

  1. You can either switch the target platform to MixedPlatforms
  2. You can edit UnrealGameSyncLauncher > Properties > Build and set UGS_LAUNCHER in the Conditional compilation symbols text box.