[英]Testing a visual c exe on a test vanilla machine don't start
该应用程序启动失败,因为应用程序配置不正确。 重新安装该应用程序可能会解决此问题。
这是在没有安装Visual Studio的系统上尝试调试文件时得到的。 我试图将Debug_NonRedist \\ x86 \\ Microsoft.VC90.DebugCRT复制到与我的exe相同的文件夹中,但是没有运气。
我也安装了“ Microsoft Visual C ++ 2008可再发行组件包”。
调试CRT不可分发。 “ Microsoft Visual C ++ 2008可再发行组件包”不包括调试CRT。 该应用程序具有自动生成的清单,该清单告诉操作系统从SxS系统加载调试CRT。
有关使用私有程序集的方法,请参见此CodeProject文章 ,以便您的应用程序使用您手动复制到其他系统的调试CRT dll。
最简单的解决方案是使用静态链接而不是动态链接的CRT编译exe。
使用Visual Studio打开您的项目。
从菜单中选择“项目”->“属性”(或右键单击该项目,然后从“解决方案资源管理器”中选择“属性:”)。
从选项卡式树控件中:配置属性:C / C ++:代码生成
将“运行库”设置从“多线程调试DLL(/ MDd)”更改为“多线程调试(/ MTd)”
重建,重新复制,一切都应该很好
否则,另一种解决方案是实际构建捆绑VC9运行时位的MSI。 建立一个包含以下MSM合并模块的安装项目:
“ C:\\ Program Files \\ Common Files \\ Merge Modules \\ Microsoft_VC90_DebugCRT_x86.msm”
“ C:\\ Program Files \\ Common Files \\ Merge Modules \\ policy_9_0_Microsoft_VC90_DebugCRT_x86.msm”
(如果运行的是64位,则这些文件位于“ c:\\ program files(x86)”目录中。)
最后,如果这不起作用,则可能还有其他一些DLL(MFC?)也可能需要复制。 我相信当您收到“应用程序配置不正确”错误时,可以查看系统事件日志(“控制面板”->“管理工具”->“事件查看器”)。 通常,会有有关丢失的DLL的详细错误消息。
我建议创建一个发布版本,并在普通计算机上尝试该版本(以及在该计算机上安装的Microsoft Visual C ++ 2008可再发行组件包),然后查看是否可行。
您的应用程序很可能还使用了您可能尚未复制过的MFC和C ++ DLL。 即MFC90D.DLL,MSVCR90D.DLL,MSVCP90D.DLL
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.