vc ++安装创建者

时间:2009-03-17 09:26:02

标签: visual-c++ installer vc6

VC ++ 6.0 Project

完成项目后,我使用Create Installer

创建了项目EXE

但问题是没有vc ++ 6.0软件,它将无法执行EXE项目,

显示错误:

由于未找到MFC42.DLL,此应用程序未能启动sart,重新安装应用程序可能会解决此问题。

当我安装vc ++ 6.0软件时,它没有错误。

PLZ任何正文帮助我,如果没有vc ++ 6.0 s / w项目必须执行。

或plz告诉我如何制作项目EXE(设置)

3 个答案:

答案 0 :(得分:1)

检查mfc42.dll是否可以自由分发。我认为它是Microsoft运行时库的一部分,因此重新分配应该是合法的,但您需要验证这一点(除非其他人可以验证它)。

然后只需在您的设置中包含该dll,以便dll位于exe启动的同一文件夹中。

答案 1 :(得分:1)

您可能需要考虑迁移到更广泛使用的安装实用程序。许多开源项目(以及相当数量的商业项目)使用InnoSetup来构建安装程序。

无论使用哪种工具,一般过程都是一样的。

  1. 创建程序的发布版本。
  2. 确定需要安装的所有文件。 (尝试使用Visual Studio附带的depends.exe工具来了解所需的DLL。)不要忘记帮助文件和示例。
  3. 列出文件和其他安装时任务(创建快捷方式,注册DLL等)。
  4. 构建并测试安装包。
  5. 测试装置可能很困难,而且确实应该成为另一个问题的主题。请注意,可以卸载已安装的内容,并且再次运行安装程序会做一些合理的事情。确保您有一种方法可以检测用户是否在旧版本仍在运行时尝试安装更新,并在发生这种情况时采取适当的操作,这也是一个好主意。 (它会。)

答案 2 :(得分:1)

如果您的应用程序依赖于Visual C ++运行时,您可以将它们作为安装程序的一部分包含在内,以简化最终用户的安装体验。这是如何描述将Visual C ++运行时合并模块包含到安装程序中并解释您将看到的预期ICE警告。

步骤1:获取正确的Visual C ++运行时合并模块 Visual C ++运行时合并模块随Visual Studio一起安装,位于\ Program Files \ Common Files \ Merge Modules中。 Visual C ++ 8.0运行时文件是Microsoft_VC80_CRT_x86.msm。此相同的MSM用于Visual C ++ 8.0 SP1运行时,但它由Visual Studio 2005 SP1安装程序更新。 Visual Studio 9.0运行时文件是Microsoft_VC90_CRT_x86.msm。通常不需要将策略MSM作为安装的一部分包含在内。

步骤2:在安装程序中包含合并模块 要在安装程序中包含合并模块,请使用和元素。以下示例说明了如何使用这些元素。

          Merge元素确保合并模块包含在最终的Windows Installer程序包中。使用Id属性分配唯一ID。 SourceFile属性指向计算机上合并模块的位置。 DiskId属性应与项目的Media元素中指定的DiskId匹配。 Language属性应始终为0.

MergeRef元素在Feature元素中用于实际安装合并模块。在上面的示例中,创建了特定于运行时的功能并将其标记为隐藏,以防止它显示在安装程序可能使用的任何UI中。 MergeRef通过其唯一ID引用合并模块。