为什么我没有Microsoft.VC80.MFC文件?

时间:2010-10-26 13:05:38

标签: windows-7 manifest side-by-side winsxs

安装了VS2005的新机Win7。我尝试启动一个使用Manifest.bin中的清单构建的MyApp.exe:

...

<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并用4927替换了4053.错误重新出现了不同的版本。然后我发现我的msvcr80.dll有“4927-folder”但mfc80.dll没有“4927-folder”。

两个问题:

- 为什么mfc80.dll没有“4927-folder”?

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

谢谢&amp; BR -Matti

1 个答案:

答案 0 :(得分:3)

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

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

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

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


我认为您希望使用此软件包更新Visual Studio Microsoft Visual C ++ 2005 Service Pack 1可再发行软件包ATL安全更新。