The application has failed...(应用程序配置不正确)

        在我们开发工程中,可能有些情况下,不能在本机进行调试。这个时候我们一般会使用VM(vmware)建立一个虚拟机环境,然后把编译过的程序放在该虚拟机环境下执行调试。可是在某些情况下,不管我们编译的是debug还是release版本,在虚拟机环境中都会报“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”(The application has failed to start because its side-by-side configuration is incorrect.Please see the application event log or use the command-line sxstrace.exe for more detail.)这样的错误。转载请标明出处。

        


      以前我遇到这样的问题,一般会认为是几个CRT库没有拷贝到虚拟机环境。可是这个方法对我所遇到的场景不奏效,于是我又在虚拟机中装上了我程序的开发环境VS2005。可是在真实机中生成的文件依然不能在虚拟机中运行,仍然报以上的错误。

      其实微软在其网站上提供了一种解决方案,也非常简单。原文地址我找不到了,我只针对我的VS2005做了一个解决方案以作事例。

     1 建立一个安装程序工程。

      

      2 工程文件中加入Merge Module

      

       3 从系统盘:Program FilesCommon FilesMerge Modules选择加入需要的文件

          因为我的IDE环境是xp(32bit)+VS2005,所以我选择了以下文件(是我环境中所有的VC80+x86的文件,可能不同环境这些文件个数不同)

policy_8_0_Microsoft_VC80_OpenMP_x86.msm
policy_8_0_Microsoft_VC80_MFCLOC_x86.msm
policy_8_0_Microsoft_VC80_MFC_x86.msm
policy_8_0_Microsoft_VC80_DebugOpenMP_x86.msm
policy_8_0_Microsoft_VC80_DebugMFC_x86.msm
policy_8_0_Microsoft_VC80_DebugCRT_x86.msm
policy_8_0_Microsoft_VC80_CRT_x86.msm
policy_8_0_Microsoft_VC80_ATL_x86.msm
Microsoft_VC80_OpenMP_x86.msm
Microsoft_VC80_MFCLOC_x86.msm
Microsoft_VC80_MFC_x86.msm
Microsoft_VC80_DebugOpenMP_x86.msm
Microsoft_VC80_DebugMFC_x86.msm
Microsoft_VC80_DebugCRT_x86.msm
Microsoft_VC80_CRT_x86.msm
Microsoft_VC80_ATL_x86.msm

        4 生成debug和release版文件

        5 在虚拟机中安装上步生成的文件

        经过以上步骤,我们编的debug和release版程序便可在虚拟机里正常运行了。

        感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!