基于Win7构建的程序不能在WinXP上运行

时间:2011-06-10 20:32:38

标签: c++ windows-7 visual-studio-2005 windows-xp

我有一个项目,我正在使用Visual Studio 2005在Windows 7(32位)上构建。该程序构建正常,我可以将其移动到另一台Windows 7计算机并运行它就好了。当我尝试将其移动到Windows XP Pro计算机时出现问题。当我尝试运行该文件时,出现以下错误:

“此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。”

当我打开事件查看器时,有三个与此问题相关的系统错误:

  • 无法找到依赖程序集Microsoft.VC80.CRT而上次错误是您的系统上未安装引用的程序集。
  • 解决Microsoft.VC80.CRT的部分程序集失败。参考错误消息:系统上未安装引用的程序集。
  • 为[我的exe的路径]生成激活上下文失败。参考错误消息:操作成功完成。

我已经尝试安装Visual C ++ 2005 SP1可再发行组件包,但没有帮助。

如果我在XP计算机上构建项目,我可以在另一台XP计算机(没有C ++可再发行组件)和Windows 7计算机上运行它。

总是在XP上构建不是一个可行的选择,因为我不是唯一一个构建这个的人,而其他人都将使用Win7。

5 个答案:

答案 0 :(得分:1)

如果它是原生二进制文件,请使用Dependency Walker检查丢失的系统DLL - http://www.dependencywalker.com/

同时检查您是否需要WINVER - http://msdn.microsoft.com/en-us/library/aa383745%28v=vs.85%29.aspx否则SDK会回退到SDK版本,对于较新版本,它是Vista +。因此,您可能会意外地调用XP上甚至无法使用的一些功能。

答案 1 :(得分:0)

这就是解决问题的方法:

将以下文件夹复制:"C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT"(因为这是事件查看器中提到的文件)与我执行时遇到问题的.exe相同的目录。这使程序可以使用它构建的依赖关系。

答案 2 :(得分:0)

将Visual Studio版本更新到Visual Studio 2005 SP1后,我们遇到了类似的问题。它附带更新版本的MFC和CRT。

您可以使用Dependency Walker(http://www.dependencywalker.com/)检测问题。

如果似乎是尝试确保应用Windows更新。 您还可以下载并运行Visual Studio 2005 SP1可再发行组件。

Visual Studio 2005可再发行 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=14431

Visual Studio 2005 SP1可再发行 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5638

Vivian De Smedt。

答案 3 :(得分:-1)

程序集是.NET,而不是本机代码。您可能缺少.NET框架。 Visual C ++ Redistributable将不包含.NET程序集。

答案 4 :(得分:-3)

在较新的操作系统或库版本上构建的软件可能依赖于旧版本的操作系统或库中不存在的新API或功能。

你可以:

  • 在您打算支持的最旧系统上构建您的软件。这假定系统的较新版本保留了与基本版本的向后兼容性。您的软件将无法利用较新版本操作系统中提供的功能,但应能够在将来提供的所有向后兼容系统上运行。

  • 为您要部署的每个系统构建一次软件。这是更多的工作,但意味着您可以配置您的软件以利用新的API和功能,因为它们可以在平台的各种发布迭代中使用。