(Devexpress)打包好的程序只能在开发的电脑上运行,不能在别人电脑上运行

(Devexpress.xpf)当打包好的程序只能在开发的电脑上运行,不能在别人电脑上运行时(出现如下错误)
问题签名:
  问题事件名称: CLR20r3
  问题签名 01: dxapplication1.exe
  问题签名 02: 1.0.0.0
  问题签名 03: 530b16e8
  问题签名 04: mscorlib
  问题签名 05: 4.0.30319.17929
  问题签名 06: 4ffa561c
  问题签名 07: 26a0
  问题签名 08: 0
  问题签名 09: System.Windows.Markup.XamlParse
  OS 版本: 6.1.7601.2.1.0.256.1
  区域设置 ID: 2052
  其他信息 1: 0a9e
  其他信息 2: 0a9e372d3b4ad19135b953a78882e789
  其他信息 3: 0a9e
  其他信息 4: 0a9e372d3b4ad19135b953a78882e789


联机阅读隐私声明:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804


如果无法获取联机隐私声明,请脱机阅读我们的隐私声明:
  C:\windows\system32\zh-CN\erofflps.txt


其原因经过长时间排查,原因如下:
在开发者的电脑上的C:\Windows\Microsoft.NET\assembly\GAC_MSIL下有很多Devexpress的库(这些库是安装Devexpress产生的),由于这些库在全局程序集缓存 (global assembly cache, GAC)下,所以在开发者的电脑上就算执行文件夹下少了Devexpress的某些库,其也会使用GAC下的库,所以在开发者的电脑上运行正常。但是在其它电脑上就不一样了,执行文件夹下缺少库,并且GAC下也缺少库,是肯定没法运行程序的。
经过排查是主题库没有在执行文件夹下,所以需要将用到的主题库放到执行文件夹下。步骤如下:
首先找到缺少的主题库文件,然后通过添加引用添加进来,点击每个主题库,在其属性栏里将复制到本地改为True即可。另外打包的时候务必重新选定Release文件夹,否则打包后的程序安装后仍然不会出现主题库文件。


附:查找原因过程
。。花多多时间排除其他,试网上的方法,无果。

首先将Devexpress(WPF)安装在别的电脑上,发现程序就可以用了,于是找到安装处D盘,将文件夹重命名,发现程序运行正常,所以删除了D盘的安装,但是开始菜单的Devexpress程序仍然运行正常,定位后,重命名,依然不受影响,继续删除,连注册表也删了,也不受影响。因此可能其他地方仍然有Devexpress的东东。没办法,于是全盘搜索Devexpress,发现大量存在于C:\Windows\Microsoft.NET\assembly\GAC_MSIL下,继续多多排除(放到新建文件夹下,Xpf),才找到是主题库的原因。


你可能感兴趣的:(UI编程(C#))