4

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

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

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

我当然不想通过给他们不正确的指令来搞砸他们的机器或其他应用程序。

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

4

4 回答 4

7

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

因此,您免受那种 DLL 地狱的保护,以换取另一种(用户必须安装 SP1 可再发行组件)。

于 2009-07-31T17:24:15.140 回答
7

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

于 2009-07-31T17:28:14.650 回答
3

VC++ 可再发行组件旨在并行安装并且可以和平共存。

这是MSDN 文档中关于 VC++ redistributables的页面。MSDN 的整个部署部分应该具有指导意义。

于 2009-07-31T17:23:31.490 回答
2

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

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

要了解并排的工作原理,请执行

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

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

于 2009-07-31T17:31:49.713 回答