5

有一台安装了 VS2005 的全新 Win7 机器。我试图启动一个 MyApp.exe,它是用 Manifest.bin 中的清单构建的:

...

<assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>

...

结果是错误消息“应用程序无法启动,因为它的并排配置不正确......

事件查看器详细告诉我原因:

“c:\Xxx\MyApp.exe”的激活上下文生成失败。相关程序集 Microsoft.VC80.MFC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053" 找不到。请使用 sxstrace.exe 进行详细诊断。

所以我浏览了winsxs文件夹,确实所有“4053文件夹”都不见了。然后我编辑 Manifest.bin 并将 4053 替换为 4927。错误在不同版本中再次出现。然后我发现我得到了 msvcr80.dll 的“4927 文件夹”,但没有得到 mfc80.dll 的“4927 文件夹”。

两个问题:

- 为什么 mfc80.dll 没有“4927 文件夹”?

- 如何获取所有“4053 文件夹”?

谢谢和BR-马蒂

4

1 回答 1

4

您应该安装 Visual C++ 可再发行组件或使用合并模块将可再发行组件添加到您的 Windows Installer 安装包中。或者,您应该将 MFC 库复制到您的应用程序所在的目录中。

可用作私有程序集的库(在您的应用程序目录中)位于C:\Program Files (x86)\Microsoft Visual Studio 8\VC\redist\x86,或者amd64如果您的应用程序是 64 位,则位于。

Windows Installer (MSI) 的合并模块位于C:\Program Files (x86)\Common Files\Merge Modules.

安装所有库的可再发行包可以在C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe32 位程序和…\vcredist_x64\vcredist_x64.exe64 位程序中找到。您可以从Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update获取这些文件。


而且我认为您想使用此包 Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL 安全更新来更新 Visual Studio。

于 2011-03-22T06:59:58.407 回答