I have an executable that shows that it depends on
Microsoft.VC90.CRT 9.0.21022.8
Microsoft.VC90.CRT 9.0.30729.1
On Windows 7, this executable runs without problems. In Windows Server 2008 R2, this executable does not start with the message:
The application failed to start because its side by side configuration is incorrect. Please view the application event log or use the sxstrace.exe command line tool for more details.
This was unexpected - I thought that Windows 7 and Windows Server 2008 R2 should be very similar to runtime availability. Both cars are pretty clean. The Windows 7 machine is a new installation in which there is nothing. A Windows Server 2008 R2 computer has only a few updates from Windows Update.
I checked the WinSxS directory for Windows 7 and found
Microsoft VC90.CRT 9.0.30729.4926
I checked the WinSxS directory for Windows Server 2008 R2 and found
Microsoft VC90.CRT 9.0.30729.4926
The current runtime is newer than what is indicated in the manifest, and yet Windows Server 2008 R2 cannot be redirected to a newer runtime. Running sxstrace on Windows Server 2008 R2 shows:
INFO: Applying Binding Policy
INFO: No publisher policy found.
INFO: No binding policy redirect found.
Running sxstrace on Windows 7 gives:
INFO: Applying Binding Policy
INFO: Find publisher policy at C:\Windows\WinSxS\manifest\amd64...
INFO: Publisher Policy redirected assembly version.
INFO: Post policy assembly identity is...
Any ideas on how to solve this, besides installing the VS 2008 runtime environment and the VS 2008 runtime environment with Service Pack 1 (SP1)? I thought the whole idea of the assembly was that it allows the system to redefine older versions and replace newer ones.