原创 DXperience 7.x源码编译收藏

新一篇: cxGrid 明细表数据导出Excel 例子 | 旧一篇: C#通过WMI设置NTFS目录共享和目录安全

DXperience 7.x编译源码

一)升级DXperience控件

1) 卸载老的DXperience控件
关闭VS2005/VS2008 IDE,通过控制面板的添加/删除程序功能进行卸载老版本的DXperience控件

2) 下载需要的文件
对应版本的DXperience试用版,编译脚本和本地化包都需要到DevExpress官方网站进行下载
下面给出下载链接,直接点击下载即可:
DXperience试用版:点击进入下载页面
编译脚本:点击进入下载页面

2) 安装试用版
安装试用版是必须的,因为它包括源码包中所没有的演示代码、帮助文档和各种工具。
双击DXperience试用版安装包进行安装。
这里要注意:下载的试用版的版本号应该与源码版本对应

3) 解压源码文件
将源码压缩包的所有文件解压到试用版的安装目录的Sources子目录下
默认的安装目录为:C:\Program Files\Developer Express .NET v7.x\
所以源码包应解压到C:\Program Files\Developer Express .NET v7.x\Sources\目录
(x应替换相应的次版本号,以下不再重复说明)
解压完成后应看到Sources目录下多了十几个源码子目录

4) 解压编译脚本
将下载的编译脚本压缩包解压,然后进入对应版本的子目录,
将所有文件(不包括子目录PatchInternalVisibleTo)复制到DXperience安装目录的Sources子目录下

5) 使用编译脚本进行编译
先执行clear.bat删除全局缓存中试用版的程序集DLL,再执行buildall.cmd重新生成正式版的程序集DLL
编译时可能会显示一些黄色的警告(warning),不用担心,不会出现错误(error)的

注:DXperience 7.3可能要求安装
a) .NET Compact Frame 2.0 SP2 (点击进入下载页面)
否则对下面二个项目的编译将报错:
DevExpress.Data.Compact.csproj
DevExpress.Xpo.Compact.csproj
b) .NET Framework 3.5 (点击下载)
否则对下面一个项目的编译将报错:
DevExpress.Xpo.Linq.csproj

对于DXperience 7.3.5源码中的ASPxScheduler的目录路径和编译脚本都存在问题,点击下载修正过的源码和编译脚本

6) 重新生成工具箱选项卡
点击 开始菜单 -> 所有程序 -> Developer Express .NET v7.x -> Tools -> ToolboxCreator
以删除试用版的VS2005/VS2008工具箱选项卡,并重新生成正式版的VS2005/VS2008工具箱选项卡

7) 确认升级成功
到此控件已经升级完成,让我们确认一下
打开VS2005,新建一个Windows应用程序,然后按Ctrl+Alt+X显示工具箱,发现有四个新选项卡:
DX: WinScheduler.v7.x
DX: WinLib.v7.x,
DX: Win.v7.x
DX: General.v7.x

展开Developer Express: Win.v7.x选项卡,将GridControl拖到Form1上,然后对GridControl点右键,
在弹出的快捷菜单中,选择“About”,这时可以看到XtraGrid的版本号已经更新了,
Serial Number显示为--TRIAL VERSION--,虽然显示为试用版但其实已经是正式版了
真正的试用版只要把GridControl拖到Form上就会自动弹出关于对话框的


二)升级原有的应用程序

1) 关闭VS2005/VS2008,备份要升级的应用程序
比如说用WinRAR/7-Zip打个备份包

2) 通过DXperience提供的ProjectConverter进行升级
执行 开始 -> 所有程序 -> Developer Express .NET v7.x -> Tools -> ProjectConverter
在弹出的对话框中选择VS项目文件所在的路径并去掉创建备份文件的勾然后按Upgrade就行了
ProjectConverter会将项目中所有对老版本DXperience程序集的引用转换为新版本

3) 打开VS2005/VS2008,重新编译项目
a. 从DevExpress Windows Controls 3.x (VS2005)升级7.x
可能需要更改一些代码,有三个地方需要改:
GridView.ExportToExcel -> GridView.ExportToXls
GridView.OptionsView.ShowFilterPanel = false -> GridView.OptionsView.ShowFilterPanelMode = ShowFilterPanelMode.Never
GridView.OptionsView.ShowFilterPanel = true -> GridView.OptionsView.ShowFilterPanelMode = ShowFilterPanelMode.ShowAlways
GridView.OptionsBehavior.ShowEditorOnMouseUp = true -> GridView.OptionsBehavior.EditorShowMode = EditorShowMode.MouseUp
可以按Ctrl+H激活查找和替换对话框,对当前项目所有cs文件进行替换
直到项目可以顺利通过编译

代码没问题了,但是界面还需要改动
应用程序运行后发现界面变得不像样子了
控件和工具栏的背景色不对了,按钮上的图片变成了不透明的了
在解决方案资源管理器中打开Program.cs,在Main()函数的Application.Run(new Forms.FormMain());这行代码前输入下面的代码

设置DXperience控件的默认样式

这段代码的功能是统一设置DXperience控件的默认样式

在主画面类中加入下面三个静态方法,然后
在包括NavBarControl控件的画面FormLoad事件中调用NavBarItemTransparent()方法
在包括BarManager控件的画面FormLoad事件中调用BarItemTransparent()方法 

       位图透明
        
NavBar图标透明
        
Bar图标透明

b.从7.1/7.2升级到7.3
编译时可能出现资源文件(*.resx)控件版本错误,定位到出错的行,向上找到最近的PublicKeyToken=xxxxxxxxxxxxxxxx的地方
到源码目录Sources下找到PublicKeyToken.txt,这个文本文件是按前面步骤编译时自动生成的,记录了公钥标记。
而ProjectConverter进行转换时并不会自动替换这个公钥码。
选中出错资源文件的PublicKeyToken=xxxxxxxxxxxxxxxx,按Ctrl+H弹出替换对话框,在替换为文本框输入PublicKeyToken=,
然后将PublicKeyToken.txt中的公钥复制并粘贴到后面,查找范围改为:整个解决方案,执行全部替换
再重新生成解决方案就没问题了

4) 更改ClickOnce布署
最后,还需要对ClickOnce布署进行一些调整
点击 项目菜单 -> 属性... 启动项目属性画面,选择“发布”选项卡并点击“应用程序文件(i)...”按钮
在弹出画面中选中显示所有文件,将老的DXperience程序集DLL从中删除,并将新的DXperience程序集DLL的发布状态改为“包括”
点击“立即发布”按钮进行发布,从客户端更新后测试,顺利通过

如果你是采用的安装程序,也只要替代DXperience程序集DLL就行了

5) 最后大功告成,可以举杯庆祝了。嘿嘿! 

发表于 @ 2007年12月26日 13:04:00|评论(loading...)|编辑

新一篇: cxGrid 明细表数据导出Excel 例子 | 旧一篇: C#通过WMI设置NTFS目录共享和目录安全

评论

#fugees 发表于2008-01-04 01:47:55  IP: 218.80.48.*
ASPxScheduler按照您提供的网址下载的编译还是出错了,期望您帮我看看!错误如下!
CSC : error CS1548: Cryptographic failure while signing assembly 'c:\Program Fi
les\Developer Express .NET v7.3\Sources\DevExpress.Web.ASPxScheduler\obj\Debug\
DevExpress.Web.ASPxScheduler.v7.3.dll' -- 'Error reading key file '..\..\..\..\
Devexpress.Key\StrongKey.snk' -- 系统找不到指定的路径。 '
#zxkid 发表于2008-01-11 11:11:34  IP: 58.215.255.*
@fugees
看你出错的信息 应该是没有使用压缩包的编译脚本进行编译
官方的编译脚本是有问题的
#aimeet 发表于2008-01-14 09:56:07  IP: 123.115.209.*
执行执行clear.bat删除了DevExpress.DLL目录下的dll,d然后执行buildall.cmd,出现了找不到引用和命名空间的错误!也没有生成新的dll
#zxkid 发表于2008-01-15 15:25:31  IP: 58.215.255.*
@aimeet
编译脚本要复制到Source目录下。
DevExpress.Web.ASPxScheduler目录下只有二个子目录DevExpress.Web.ASPxScheduler和DevExpress.Web.ASPxScheduler.Design,其它可以删除,我打包压缩时忘记删除了。
buildall.cmd中编译ASPxScheduler的正确脚本应该如下:
PatchInternalVisibleTo.exe DevExpress.Web.ASPxScheduler\DevExpress.Web.ASPxScheduler\Properties\AssemblyInfo.cs %sn% DevExpress.Key\StrongKey.snk
call buildproject.cmd DevExpress.Web.ASPxScheduler.%dxver% ".\DevExpress.Web.ASPxScheduler\DevExpress.Web.ASPxScheduler\DevExpress.Web.ASPxScheduler.csproj"
call buildproject.cmd DevExpress.Web.ASPxScheduler.%dxver%.Design ".\DevExpress.Web.ASPxScheduler\DevExpress.Web.ASPxScheduler.Design\DevExpress.Web.ASPxScheduler.Design.csproj"
#jjjjj102310253 发表于2008-04-08 13:54:38  IP: 220.231.63.*
以前装过,前两天装了vs2008 在08上不能用所以删了重装出现下面问题:
Cannot create ASPxGridViewDemos_v7_3/CS/ASPxGridViewDemos virtual directory - COM+ 无法与 Microsoft 分布式事务协调程序交谈

能不能帮看看是什么原因?
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © zxkid