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

原创 2015年07月09日 10:28:33
(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),才找到是主题库的原因。


相关文章推荐

基于DevExpress的Winform程序安装包的制作

在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装。安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件...

C#程序终止问题CLR20R3解决方法

去年在公司局域网部署了一个C#编写的自动更新的工具软件,最近有同事反映部分Win7系统电脑安装不了,程序自动安装不了,免安装版又运行不了。 没办法,先解决自动安装不了的问题,最后通过关闭防火墙得以解决...

visual studio编写的exe程序不能在没装vs的电脑上运行

visual studio编写的exe程序不能在没装vs的电脑上运行 最近在整理以前学习C++时候的笔记和项目的时候,发现以前用VS编译出来的exe程序不能在没有装VS的电脑上运行,后来仔细研究了一...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

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

(Devexpress.xpf)当打包好的程序只能在开发的电脑上运行,不能在别人电脑上运行时(出现如下错误) 问题签名:   问题事件名称: CLR20r3   问题签名 01: dxappli...
  • zhlechn
  • zhlechn
  • 2014年02月25日 10:30
  • 2703

EF表连接查询 include join 方法介绍

在EF中表连接常用的有Join()和Include(),两者都可以实现两张表的连接,但又有所不同。 例如有个唱片表Album(AlbumId,Name,CreateDate,GenreId),表...

如何将LabVIEW程序打包在没有安装LabVIEW的电脑上运行

看了网上许多讨论将LabVIEW程序生成exe文件的,但如果只生成exe文件的话,只有在安装了LabVIEW8.2引擎的电脑上才能运行。 这里针对新出的LabVIEW8.2中文版程序打包做一个介...

如何解决Qt程序在其他电脑上无法运行的问题(Qt程序打包发布)

这几天在研究Qt,首先尝试用Qt Creator编写一些小程序来练练手。但是,在这个过程中却遇到了一个问题:使用Qt Creator编写的exe程序,只能在本机运行,跑到别的电脑上就无法运行了,提示缺...

c# 更改注册表开机启动+mutex(互斥,同一时间同一台电脑只能运行一个程序)

1.更改注册表,使开机启动 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下增加一个键,键值为程序路径即可,代码如...
  • lcawen
  • lcawen
  • 2013年04月12日 12:56
  • 1149

基于Opencv平台开发的程序在其它电脑上独立运行

基于Opencv开发的程序可独立运行的方法讲解 注:学习心得,仅供参考。如有错误,请不吝赐教。 可执行程序的要求:无需安装第三方软件包,可在Windows7或ubuntu 14.04.1操作系统上独立...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(Devexpress)打包好的程序只能在开发的电脑上运行,不能在别人电脑上运行
举报原因:
原因补充:

(最多只允许输入30个字)