5

When I install a game why does the installer also install DirectX, C++ libraries or .NET components that I already have?. Are these different versions or extensions? Or is is because the game installers are unable to find out what I already have installed?

9
  • 1
    Altough the short answer is that they do not know what you have installed, so they try to install everything anyways. (The installer makes sure nothing newer gets overwritten.)
    – DJ Pirtu
    May 18, 2016 at 14:59
  • 1
    @DJPirtu I know what DirectX is and I have version 9 and 11, but games still want to install it
    – Motte001
    May 18, 2016 at 15:00
  • 1
    The short answer: Checking if the required version of DirectX or C++ redistributables are around is way too much of a pain, when you can simply reinstall them all over again (which doesn't take that much time anyway). I haven't noticed any game installing DirectX since version 10, though.
    – Nolonar
    May 18, 2016 at 15:05
  • 1
    Not a duplicate. The OP isn't asking for the differences between versions but why installing a game tends to invoke the re-installation of apparently existing components.
    – user101016
    May 18, 2016 at 15:30
  • 1
    Yeah, this isn't really a duplicate of that linked article, which explains what DirectX is and why it's needed, and buried in a couple answers are nuggets of the answer to this question... But they aren't the same
    – Taegost
    May 18, 2016 at 17:13

1 Answer 1

1

This can be for a number of reasons, all depending on the game in question...


Version Differences

You may have insert any component installed, but the game's installer includes a different version. This is the most likely reason. For example, according to Steam there are over 40 version of DirectX 9, and many more for later versions of DirectX. See this answer which specifically addresses the reason why there are so many C++ redistributables. The version differences for such components tend to be minor patches, such as bug fixes. Also, each minor patch/version needs to be a separate installation to avoid problems such as DLL Hell.


Installer Configuration

The installer is configured to just reinstall all components each time (this ensures that the game has the correct installation). This avoids checking for existing files (quicker, less issues with false positives) and/or asking the user a bunch of setup questions (i.e. a streamlined installer UI). From my experience, Steam does this. The explanation could be to ensure that you have the correct 1 of 40 or so possible versions of the component. You are not alone if this is what you are experiencing, other people have noticed the problem too.

Additionally, from the Steam article linked above, this snippet of info may explain some scenarios:

Games which don't use the D3DX helpers (such as Source engine games) don't require running the installer on first launch as they only depend on major d3d9/10/11 versions being installed. However, games that do use D3DX must run it as it's the only way Microsoft has allowed for distributing and checking the version info on the files.


Locally Shared Libraries vs. System Libraries

The game installs the components to a different location than the usual location of system components. For example, a subdirectory for the game's installation folder. This is known as "using a shared DLL" when compiling a program for Windows (Visual C++). The game may lose out on officially patched runtimes that are installed into the standard system directories, but this approach allows a developer to have more control over the distribution of third party components. This approach also allows a developer to use a special build of a specific library. Note that for some third party components there are no "official" builds (i.e. the developer must use the source code to generate their own build via their chosen compiler).

I would say this is the most unlikely reason. If the DLLs are installed locally then it would probably be done as part of the main installation. However, I have seen this with software other than games. I'm not sure if this is still the case but some QT-based applications I have used in the past have used locally copied QT DLLs.


Installation Script Bugs

Minor installation script issues or bugs, such as the installer not having the access rights to read specific folders/registry keys. Let's not rule out actual problems in the installation script, which are subject to all kinds of operating system / access rights issues.

3
  • 2
    Thats actually a good answer. Why downvoted?
    – Motte001
    May 19, 2016 at 14:41
  • @Motte001 The usual answer to this question is because Tim lost his keys. Altough in this case the most likely answer is a spill over effect on a contested question.
    – DJ Pirtu
    May 20, 2016 at 9:39
  • @DJPirtu common Tim
    – Motte001
    May 20, 2016 at 14:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .