永发信息网

如何在其他电脑上运行VS2005编译的DEBUG版应用程序

答案:5  悬赏:0  手机版
解决时间 2021-05-08 19:33
  • 提问者网友:寂寞撕碎了回忆
  • 2021-05-08 15:12
做项目的过程中,遇到这样的问题:在自己的电脑上用VS2005编译好的DEBUG版程序在其它的没有安装VS2005的电脑上没有办法运行。这样才能在没装VS2005的电脑上运行,在先等
最佳答案
  • 五星知识达人网友:低血压的长颈鹿
  • 2021-05-08 16:32

首先,通过菜单找到关于选项查询当前VS2005的版本,然后到自己电脑"$(Windows)\WinSxS\"目录下可以看到很多长长名字的目录。第一个"_"前为平台,这里以x86为例,接下来找到带有"Microsoft.VC80.DebugCRT"和"Microsoft.VC80.DebugMFC"字样的且包含上面版本号的目录。我的电脑目录如下:
x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f x86_Microsoft.VC80.DebugMFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_257740a4
将这两个目录拷贝到目标电脑的"$(Windows)\WinSxS\"位置,进入"$(Windows)\WinSxS\Manifests\"目录,用上面的方法找到四个文件并拷贝到目标电脑的相同目录中,我的电脑文件如下:
x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f.cat以及.manifest文件
x86_Microsoft.VC80.DebugMFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_257740a4.cat以及.manifest文件

最后一步,进入"$(Windows)\WinSxS\Policies\"目录,找到带有"Microsoft.VC80.DebugCRT"和"Microsoft.VC80.DebugMFC"字样的两个目录将其拷贝到目标电脑的相同目录,我的电脑目录如下:
x86_policy.8.0.Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_x-ww_09e017b4
x86_policy.8.0.Microsoft.VC80.DebugMFC_1fc8b3b9a1e18e3b_x-ww_a193936f
到此,所有需要的文件都拷贝结束了,运行刚刚的应用程序,显示了我们熟悉的错误信息:"This application has failed to start because XXX.dll was not found. Re-installing the application may fix this problem."


按照提示,将需要的DLL拷贝到"$(Windows)\System32\"目录下,我的这次实验中需要拷贝 "msvcp71d.dll"和"msvcr71d.dll"。这样就可以顺利的运行DEBUG的程序了。

顺便提一下,在VS2005中,默认的会给每一个应用程序编译生成一个"应用名.exe.manifest"文件,打开来看,可以发现跟我们上面拷贝的文件以及目录名称有些相近的地方,如:
<assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
我们要拷贝的文件命就是这样的组合:processorArchitecture_name_publicKeyToken_version_...,所以如果在拷贝上诉文件以及目录之后仍旧无法运行的,可以看看manifest文件里面是不是还依赖了其它目录,如法炮制应该就可以了。

另外,在寻找解决办法的过程中看到有人提到release版的问题,解决方法则方便的多:拷贝"$(Microsoft Visual Studio 8)\SDK\v2.0\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe"到目标电脑执行即可,我没有试过这个方法,因为我release版的文件拷过去就可以直接运行了。如果你的程序无法运行,可以试一下。

注:2008年2月20日遇到一台电脑无法运行Release版程序,如上所说运行"vcredist_x86.exe",确实可以。

全部回答
  • 1楼网友:西风乍起
  • 2021-05-08 20:28
运行VS2005的程序需要在目标机器上安装 .net Framework 2.0 的
  • 2楼网友:神也偏爱
  • 2021-05-08 19:39

如果VS编MFC的话就要

  • 3楼网友:洒脱疯子
  • 2021-05-08 18:03

要运行VS编译程序需要 .net Framework 平台

如果VS编MFC的话就不需要

  • 4楼网友:街头电车
  • 2021-05-08 17:35

.net Framework版本不统一

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯