-
问题描述
自己使用visual studio开发的应用程序或者接口,在另外一台电脑上无法运行,一般提示缺失缺失dll,有时程序直接崩溃或者无限等待,或者出现闪退的情况。
-
原则
VS发布的程序尽量使用release,不带debug信息能省很多麻烦
-
缺失运行时,如MSRPC,等
在https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-1
下载对应的运行时,然后安装
-
如果还缺失的话,安装depends,进行问题分析
https://dependencywalker.com/
根据编译代码的实际情况下载对应的depends
启动后,点击Options->Configure_Module_Search_order
将这些全部移动到左边,因为我们是测试当前程序在新电脑上的运行情况,故先不要使用自己的依赖环境
打开自己要发布程序的exe的目录,将路径复制到下方路径栏目中
点击add directory后
点击OK完成配置,将exe拖动至程序界面,出现报错信息
问题及解决办法:
-
缺少系统API,在目标主机上直接安装VS运行时就可以了,这种问题最常见,最好是在官网下载对应VS版本的运行时。
-
有些系统DLL代D,例如MSVCP100D,这说明发布的时debug版本,这一般来说通过安装运行时是无法解决的,因为微软发布的运行时里面一般都不带D的,所以这种情况只有将自己本地电脑的运行时拷贝过去,一般来说,x64的库在C:\Windows\System32目录下,win32的库在C:\Windows\SysWOW64目录下,注意不要把win32与x64的库拷贝错了。这里自己的电脑上装有这些debug库的原因是你本地安装了对应版本的visual studio
-
缺乏程序依赖的其它程序的DLL,这个如果你的程序可以跑通,可以在配置属性中查看这些dll放哪的
-
最后就是可能把win32的库和x64的库放错了