2009-07-31 50 views
4

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

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

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

我肯定不想让别人的机器或其他应用程序给他们不正确的说明。

除了可重新发布的exe文件,我还会提供我的工具作为zip文件,它们可以将它们提取到任何他们想要的目录中,所以我没有计划提供安装程序。

+0

当然,微软会考虑更新版本的可能性,并且不允许原始可再发行版覆盖更新的版本? – 2009-07-31 17:17:31

回答

7

随着VS 2008的运行时间表现出来并且将并排安装。因此,如果您的应用程序链接到SP1的运行时,它将只能在SP1运行时运行(除非清单明确指出应该重写Sp1版本)。

因此,您可以从该类型的DLL地狱中得到保护,以换取另一种(用户必须必须安装SP1可再发行组件)。

+0

您在括号中的最后一条评论是有误导性的。 SP1 redist与应用程序一起安装和卸载。这不像用户必须单独安装它。 – 2009-07-31 17:26:03

+0

问题是,即使用户已经安装了SP2,它仍然会安装。 – 2009-07-31 17:30:00

7

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

2

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

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

要获得如何并排侧作品的直觉,做

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

你会看到所有的人已经把你的机器上的版本。

相关问题