views:

4638

answers:

5

Hello,

Visual C++ 2005 I build on my system use CRT DLLs version 8.0.50727.4053. I believe it is the latest one and was automatically updated by Windows.

On user systems, this version of the DLL is not found. I have used vcredist_x86.exe in the past as a part of our installer to install runtime DLLs. It used to work.

My problem is that even the latest version of vcredist_x86.exe ( Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)) doesn't install this version of the DLL.

So which vcredist_x86.exe file do I need then ?

P.S. Would forcing my app to link to a specific version of the CRT solve the problem ? Is it a prefered method at all ?

Thanks,

Paul

UPDATE: There are other people who observe that vcredist_x86.exe ( Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)) doesn't install 8.0.50727.4053.

UPDATE2: At least one person suggests forcing using the previous version of CRT (http://tedwvc.wordpress.com/). This would however add a significant complexity to our projects.

+1  A: 

Microsoft release an update (google for KB971090) containing a security fix for the VC runtime. There is a corresponding update to the vcredist_x86.exe, but I don't have a link. If you have KB971090 installed, I think you should have an updated vcredist_x86.exe somewhere on your machine.

In practise (IIRC), it means that binaries built on machines which has KB971090 installed can only run on machines which have the corresponding updated VC runtimes, i.e. you need to ship and install the new vcredist_x86.exe on client machines.

JesperE
+2  A: 

Ok. I found the solution in an MS Forum:

If you installed the security update, the 9.0.30729.4148 version of vcredist should be in your Windows SDK folder, typically C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\vcredist_x86 and C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\vcredist_x64.

Original thread

Paul
I ran into the same problem, but installing v9.0.30729.4148 didn't install the v8.0.50727.4053 DLLs :(
Dimitri C.
A: 

On my machine I found the 8.0.50727.4053 redistributable in \Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86

The one in \Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\vcredist_x86 was for VS2008.

 - Greg
Greg Menounos
+1  A: 

Following the advice of JesperE, I found that there exists "Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update" which provides these distributables.

mikets
+1  A: 

I think there's an important distinction for VS standard/professional users and VS Express users. For VC++ Standard, c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\ contains the 8.0.50727.4053 redistributable (after the security update is installed). There is no need to separately install an SDK, so (for instance), I don't even have a C:\Program Files\Microsoft SDKs\ directory on the machine with VC++ Standard installed.

When using VS 2005 Express, follow mikets' answer, and get the ATL security update version. I confirmed these fix the problem in my case.

Aron