使用特定版本的vcredist?

时间:2009-06-04 12:10:44

标签: c++ visual-studio

在Visual Studio 2008 SP1中是否可以将C ++ COM项目定位到vcredist 2008而不是vcredist 2008 SP1?

我们的客户安装了vcredist 2008,我们不想强迫他们安装vcredist 2008 SP1。 (成千上万的电脑!)

2 个答案:

答案 0 :(得分:3)

VS2008实际上,默认情况下,继续以VS9 RTM redist为目标。 依赖性检查程序中发生的情况是,安装VS9 SP1时,还会安装一个策略文件,用于重定向将RTM可再发行组件加载到SP1可再发行组件的尝试。

为了让VS9 SP1实际需要SP1运行时,您需要将以下宏添加到项目设置或预编译头中:

#define _BIND_TO_CURRENT_CRT_VERSION 1

答案 1 :(得分:2)

  1. 您可以尝试删除嵌入清单(查看项目设置清单工具),并为针对sp1前CRuntime版本的应用程序提供自己的清单。
  2. 您也可以自己部署C-Runtime,在x86 / x64下的redist文件夹中,您会发现C-Runtime(Microsoft.VC90.CRT)的文件夹只是将这些文件夹复制到与exe相同的文件夹中。
  3. 使用静态C-Runtime选项,以便将C-Runtime用作静态lib,如果你没有很多dll / exe,它会很有用。