Engine Prerequesites Failing - 0x80070666

Hello,

We are seeing some issues with one of our shipped games. Some users are complaining about failing to install the prerequisites for UE4. On closer inspection it is failing to install the “vcredist_x86.exe” with error code 0x80070666. This error translates to “Another version is already installed”.

I have managed to reproduce this by installing version ‘14.0.24210’ of the VC++ 2015 Redistributable and then trying to install the 4.10 UE4 prerequisites. I am wondering what the fix would be for our customers. I can think of several and I’m not sure which is the best:

  1. Ask users to uninstall the later update of the VC++ 2105 Redistributable. I can’t see this going down to well and it might break other games on their systems.

  2. Patch the prerequisites to a later version. The version that shipped in 4.13 seems to to exhibit this behaviour. However, I’m not sure if they are compatible with 4.10.

  3. Remove the prerequisites from the build completely and rely on Steam to install DirectX and the VC++ Runtime. I’m not sure about this as I don’t know what else is installed by the prerequisites.

Any guidance on this issue would be helpful. I have included a log file of it going wrong.

Thanks

Alex

Hello Alex, Sorry for the delay, I was out of the office. All three approaches you laid will work. Here are my takes on the three:

  1. Though it should work, I would not suggest going down this route for the very reason you mentioned.

  2. The prerequisites installers that shipped with 4.11, 4.12, and 4.13 are identical. You can use any one of these as they are compatible with 4.10. This is the approach I would recommend as there are complications with manually installing some of the dependencies on various versions of Windows.

  3. In the end the prerequisites installer we provide is just a convenient wrapper for the required third-party dependencies. You could use any number of methods to install these dependencies but the advantage of using the installer we provide is that it knows how to handle edge-case and quirky issues you’ll run into on a number of Windows OS versions. Here is an example breakdown of what is installed on a typical 64bit machine.
    Example:

    • DirectX Runtime via DXSETUP with the following core and optional components
      APR2007_xinput_x64.cab
      APR2007_xinput_x86.cab
      DSETUP.dll
      DXSETUP.exe
      Feb2010_X3DAudio_x64.cab
      Feb2010_X3DAudio_x86.cab
      Jun2010_D3DCompiler_43_x64.cab
      Jun2010_D3DCompiler_43_x86.cab
      Jun2010_XAudio_x64.cab
      Jun2010_XAudio_x86.cab
      Jun2010_d3dcsx_43_x64.cab
      Jun2010_d3dcsx_43_x86.cab
      Jun2010_d3dx10_43_x64.cab
      Jun2010_d3dx10_43_x86.cab
      Jun2010_d3dx11_43_x64.cab
      Jun2010_d3dx11_43_x86.cab
      Jun2010_d3dx9_43_x64.cab
      Jun2010_d3dx9_43_x86.cab
      dsetup32.dll
      dxdllreg_x86.cab
      dxupdate.cab
    • Visual C++ Runtime
      • VC100 via merge modules
        • Microsoft_VC100_CRT_x86.msm
        • Microsoft_VC100_CRT_x64.msm
        • Microsoft_VC100_OpenMP_x64.msm
      • VC110 via merge modules
        • Microsoft_VC110_CRT_x86.msm
        • Microsoft_VC110_CRT_x64.msm
        • Microsoft_VC110_OpenMP_x64.msm
      • VC120 via merge modules
        • Microsoft_VC120_CRT_x86.msm
        • Microsoft_VC120_CRT_x64.msm
      • VC140 via vcredist executable
    • .Net 4.0