Search code examples
c++visual-studio-2008crt

Why does the program who has a embeded manifest with CRT version 30729.4148 runs with 30729.6161(latest) in winsxs folder on runtime?


I have a question really really wondering.

I installed various versions of visual studio 2008 redistribution package in my machine. Now, 30729.6161 is up to date.

In this environment, I made a simple program with embeded manifest which only refer to 30729.4148 CRT runtime library.

But, when I ran the program, this has loaded not a 30729.4148 version of CRT library but 30729.6161.

Why does this work?


Solution

  • The new runtime comes with policy files that redirects clients with older versions to the newer version.

    See:

    %WinDir%\WinSxS\Policies