Visual c + +可再分发的再分发

时间:2009-07-31 17:14:38

标签: c++ windows visual-c++ packages

我来自Linux背景,但我想在Windows上提供我的软件版本。对于用户运行我的程序,他们将需要Visual C ++可再发行组件。我想将它作为一揽子计划的一部分提供给他们。

我担心的是,将来会有Visual Studio 2008 Redistributable的SP2。如果我向他们提供SP1,或者让他们自己安装它,它会破坏未来工具可能需要的更高版本的dll吗?

是否有任何指示要求用户确保他们不这样做?

我当然不想通过给他们错误的指示搞砸某人的机器或其他应用程序。

除了可再发行的exe之外,我打算将我的工具作为zip文件提供,他们可以将它们提取到他们喜欢的任何目录中,所以我不打算提供安装程序。

4 个答案:

答案 0 :(得分:7)

使用VS 2008,可以显示运行时并将并排安装。因此,如果您的应用程序链接到SP1的运行时,它将仅与SP1运行时一起运行(除非清单明确指示应该覆盖Sp1版本)。

所以你受到了这种类型的DLL地狱的保护,以换取另一种(用户必须安装了SP1可再发行组件)。

答案 1 :(得分:7)

为什么不静态链接并完全避免这个问题?

答案 2 :(得分:3)

VC ++可再发行组件可以并排安装,可以和平共存。

这是MSDN docs about the VC++ redistributables的页面。 MSDN的整个部署部分应该具有指导意义。

答案 3 :(得分:2)

正如人们所说,它们是并排安装的。如果您使用Visual Studio的安装程序项目类型,则可以选择包含CRT可再发行组件,并且它将正确设置以便您随应用程序一起安装和卸载。

特别是,它们已安装到\ Windows \ WinSxS目录中。

为了对并排的工作方式有所了解,请

cd %systemroot%\winsxs
dir /S msvc*.dll

你会看到人们放在你机器上的所有版本。