DevExpress 17.2 WPF/Winform 发布到其他电脑上后无法运行

问题描述

DevExpress开发的项目,在本地运行的好好的,拷到其他电脑后无法运行,一闪而过
打开windows事件查看器,报以下错误:
DevExpress 17.2 WPF/Winform 发布到其他电脑上后无法运行_第1张图片

解决过程

看到System.IO.FileNotFoundException后,大概率知道是缺少依赖了,请注意圈出的部分,大概率是少了一个和主题相关的dll,于是百度了一大堆,参考他们的方式把相应的主题文件放到debug下即可:
拷贝主题包至debug
你也可以把所有的依赖包重新导一遍,我就是采用的这种方式
(1)打开工具-DevExpress Assembly Deployment Tool
DevExpress 17.2 WPF/Winform 发布到其他电脑上后无法运行_第2张图片
(2)勾选项目-选择导出路径-导出
DevExpress 17.2 WPF/Winform 发布到其他电脑上后无法运行_第3张图片
(3)再将所有的dll拷贝到debug下

再次掉坑

完成以上步骤后,信心满满,再次运行程序,发现还是无法启动,打开windows事件查看器,发现又报错了
DevExpress 17.2 WPF/Winform 发布到其他电脑上后无法运行_第4张图片
毫无疑问,还是缺少依赖,并且这次的报错毫无头绪…

重头再来

既然开发电脑上能运行,说明开发电脑肯定是有这个依赖的,百度之后知道DevExpress安装时把依赖全都放到了C:\Windows\Microsoft.NET\assembly\GAC_MSIL路径下,打开开发电脑,确实有很多,额,简直多的一批,Dev打头的

问题解决

那到底哪个是我们缺少的?直接上答案,不知道为什么dev的依赖工具没有打包到这个依赖
DevExpress.Xpf.Ribbon.v17.2.dll
把这个dll拷贝到debug下即可

笨办法

如果还是不行,还有依赖缺少,就只能用笨办法了,将开发电脑中C:\Windows\Microsoft.NET\assembly\GAC_MSIL下所有的Dev打头的拷贝到用户电脑,这个时候,肯定不会再出现缺少依赖的情况了
如何排查到底是缺少的哪一个呢?只能挨个删除,看删到哪个之后不能运行,那说明缺少的就是它了.建议批量删除,比如批量删A-E的,如果不报错,再删F-N的,缩小范围

你可能感兴趣的:(wpf)