应用程序无法启动,因为并排配置不正确

Cut*_*ute 3 c# c++ sql-server windows-server-2008 visual-c++

我使用visualstudio通过c ++创建了一个exe.我创建了一个com componet,它发现特定机器上的sqlserver的所有实例.在使用visualstudio的c ++程序中,我编写main()并使用com组件.

现在它应该在我的两个工作站上工作,这是w2k3机器.当我尝试在w2k8机器上运行相同时我得到错误

应用程序无法启动,因为并排配置不正确,有关详细信息,请参阅应用程序事件错误日志

我打开应用程序错误日志,发现错误为

"E:\ SQLDiscovery.exe"的激活上下文生成失败.无法找到依赖程序集Microsoft.VC80.DebugCRT,processorArchitecture ="x86",publicKeyToken ="1fc8b3b9a1e18e3b",type ="win32",version ="8.0.50608.0".请使用sxstrace.exe进行详细诊断.

如何解决这个问题PLZ帮助我

mfa*_*mkh 6

您必须在W2k8上安装VC8 Runtime.这是由于Windows并排配置.构建和EXE时,会生成一个名为"manifest"的特殊文件,此清单文件描述应用程序为正确运行所需的C运行时库的版本.
然后将Manifest嵌入到您的exe/dll中(如果您实际使用记事本打开.dll/exe并滚动到最后,您将以xml格式看到它),您还可以使用mt.exe(清单工具)来查看任何可执行文件中的清单.

当您将应用程序移动到W2k8时,您必须确保安装了从属CRT(除非您将应用程序静态链接到CRT).

您可以通过以下任一方法解决此问题1-安装VC8 Debug CRT 2-将您的应用程序构建为静态链接

查看此博客 http://detritus.blogs.com/lycangeek/2006/08/diagnosis_of_wi.html 它包含有关如何调试winsxs问题的有用信息.

希望这可以帮助