gpt4 book ai didi

c++ - 依赖行者 : Unable to resolve the side by side configuration information contains error

转载 作者:行者123 更新时间:2023-11-30 01:45:22 25 4
gpt4 key购买 nike

一个旧的 MFC 应用程序现在在使用旧 DLL 的 Visual Studio 2015 社区中重建,我正在尝试(并且撕裂我的头发)来确定在没有的机器上正确运行应用程序需要哪些运行时 DLL已安装 VS。

目标操作系统是 Windows 7。它是一个 32 位应用程序。

应用程序使用一个 DLL MAuEASE_s.dll,它使用 mfc80.dllmsvcr80.dll DLL。我没有 MAuEASE_s.dll 的源代码,所以我无法重建/替换它。

在我的开发机器上,应用程序运行良好,将以下文件集放在同一文件夹中:

  • 主要可执行文件
  • MAuEASE_s.dll
  • mfc80.dll
  • msvcr80.dll
  • 运行软件所需的 ini 文件

为了测试它在客户端计算机中的行为方式,我在虚拟机上的 Windows 7 新拷贝上使用了同一组文件。该问题似乎仅特定于 MAuEASE_s.dll 的 mfc/msvcr 依赖项。

在我的机器上,即使我将 DLL 放在可执行文件的目录中,它们也是从以下文件夹中挑选的(从 Dependency Walker 找到):

  • c:\windows\winsxs\x86_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.6195_none_cbf5e994470a1a8f\MFC80.DLL
  • c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6229_none_d089f796442de10e\MSVCR80.DLL

我已经将这两个 DLL 准确地复制到可执行文件的目录中,然后将该目录复制到运行 Windows 7 的虚拟机中。在那里,Dependency Walker 显示 MAuEASE_s.dll 错误:

MAuEASE_s.dll 的并行配置信息包含错误。

截图:

enter image description here

有趣的是,从 MAuEASE_s.dll 的 list 中我发现它需要两个 DLL 的 8.0.50727.4053 版本。但是在开发机器的 c:\windows\winsxs 中找到的 DLL 有版本 8.0.50727.61958.0.50727.6229 但这些 DLL 仍然可以在开发中使用机器。

我在 Windows 目录中搜索了 8.0.50727.4053 版本的 DLL,找到了它们并将它们替换到应用程序的可执行目录中。该应用程序仍然可以在开发机器上运行。

这些版本都不能在虚拟机中运行。

这是怎么回事,我如何找到准确的 DLL 以在未安装 Visual Studio 的 PC 上运行应用程序?

最佳答案

我的回答没有针对如何修复 WinSxS 错误的问题。它只是展示了如何强制系统加载应用程序本地 MFC DLL。

MFC80。 DLL 属于 VS-2005。他们并排引入了 MFC 的加载 DLL。因此 DLL 中的 list 告诉加载程序在 WinSxS 目录中查找公共(public)版本。

即使您没有 MAuEASE_s.dll 的源代码,您也可以通过更改嵌入式 list 来更改行为。它只是一个 XML block 。

你可以只在VS中打开DLL,你可以在那里修改资源。 (导出/导入)。或者使用其他工具修改可执行文件的资源(Resource Hacker 等)

很久以前,我写了一篇文章,将 MFC DLL 用作应用程序目录中的私有(private)程序集。您只需要从 list 中删除一个 token 。参见 here .

或者,您可以按照文章中的描述创建一个新的 list ,并将现有的 list 替换为 mt.exe。

关于c++ - 依赖行者 : Unable to resolve the side by side configuration information contains error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34740748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com