2

我已经在 Visual Studio 2010 中构建了一个 MFC 应用程序,但我正在为在安装程序中包含重新分发而摸不着头脑。

该应用程序是静态链接的,所以我不应该需要可再发行组件,它是自包含的,对吧?

4

3 回答 3

4

这是一个测试您是否需要可再发行组件的简单方法:

  • 在 VirtualBox 上安装干净的 Windows 7(甚至更好的 Windows XP SP 2,因为它没有您期望的基本内容)
  • 在此 VirtualBox 上运行您的软件

如果它不起作用,您可能需要包含可再发行组件。

于 2012-05-11T07:06:47.630 回答
0

是的,它应该没问题,但我会安装在您预期的目标平台上,看看它是否有效,如果没有,那么您需要添加更多 dll 或作为先决条件添加以在安装您的应用程序之前安装 VC 可再发行组件。

尽管您可能已包含 MFC dll,但您的目标操作系统上的 Visual C 运行时可能不同,因此您可能仍需要在您的应用程序中包含 VC 可再发行组件。

有关执行上述操作的 MSDN 链接:http: //msdn.microsoft.com/en-us/library/ms235299.aspx和演练:http: //msdn.microsoft.com/en-us/library/dd293575.aspx

于 2012-05-11T07:03:18.163 回答
0

任何时候静态链接 DLL 或可再发行组件时,都不需要再分发它。这是静态链接和动态链接之间的核心区别。

它实际上会将您使用的部分(或整个事物,取决于)嵌入到您的应用程序中。通过重新分发您的应用程序,您实际上也在重新分发其依赖项。

请注意,您不能总是使用静态链接,即使可以使用它也并不总是有意义。

于 2012-05-11T07:22:19.863 回答