DXperience 7.x源码编译

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) 最后大功告成,可以举杯庆祝了。嘿嘿! 

你可能感兴趣的:(DevExpress控件应用)