安装了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
答案 0 :(得分:3)
您应该安装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
。
安装所有库的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安全更新。