DevExpressComponents-15.1.14 重编译教程

一:前言

1、DevExpress是 Developer Express的缩写,DevExpress是一家全球知名的控件开发公司。DevExpress 也特指此公司出品的控件集合或某系列控件或其中某控件。

Dev 15.1版本17年更新到15.1.13后就没更新了,直到19年又更新到15.1.14了,可以说是挺照顾老用户的。应该是对这期间用户回馈的BUG进行修复了。之前项目从14.1升级到15.1,还算顺利。

2、本文章主要是对重编译DevExpress源码的一个梳理,让想编译的小伙伴可以有个借鉴。至于为何要编译呢,因为编译后的DLL默认就去除了官方授权注册的机制了,相当于安装到别的电脑时无需再授权,部署软件就省事多了)

 

二:准备

  • Windows 7 旗舰版 SP1 32位(x86) 系统 (本人用的VMWare V14虚拟机挂载,理论上虚拟机版本无所谓,能加载就行)
  • 下面这两个应该可以不用安装,只是WIN7 "SP2"补丁罢了,不过我是在虚拟机安装后获取系统更新补丁到最新版,期间会自行安装.NET Framework 4.7.2:
  • ①Windows6.1-KB3020369-x86.msu
  • ②windows6.1-kb3125574-v4-x86_ba1ff5537312561795cc04db0b02fbb0a74b2cbd.msu(相当于SP2补丁,微软官方要求先安装KB3020369)
  • VS2010:cn_visual_studio_2010_ultimate_x86_dvd_532347.iso (自带SilverLight5 SDK)
  • VS2010 SP1补丁 (迅雷直接添加任务:http://download.microsoft.com/download/E/B/A/EBA0A152-F426-47E6-9E3F-EFB686E3CA20/VS2010SP1dvd1.iso) (VS2010 SP1补丁貌似可以不用安装。我还看过一个帖子说VS2010都不用安装完整版,装个VS2010 Shell即可,不过我试过用WIN8.1系统安装后,gacutil找不到,装了4.7.2的SDK好像版本又太新了,而且4.5的SDK提示安装不了)
  • ASP.NET MVC 3 RTM (V3.0版本:https://www.microsoft.com/zh-cn/download/details.aspx?id=4211 或者V3.1版本: https://www.microsoft.com/zh-CN/download/details.aspx?id=1491)
  • DevExpressComponents-15.1.14.exe (采用离线注册的方式获取到源代码,WIN7下面安装的话那个XMAL是不能勾选的,要求8.1以上系统,那个东西暂时不需要)
  • Source Code Builder Tool (https://go.devexpress.com/DevExpress_SourceCodeBuilderTool.aspx)

    需要下载帖子里面提到的Dev的编译工具:http://downloads.devexpress.com/DXperience/SourceCodeBuilderTool/SourceBuilderTool105.zip(2019-03-01当前最新,大家可以更改路径名下载旧版本,如105改为104)

    PS:这个工具有个问题,会提示网络不可用,我用ILSpy 4.0用C# 5.0格式反编译后,用VS2013打开,发现里面提示网络不可用是访问了谷歌的网站,改成baidu.com即可。另外那个.NET Framework 4.5的提示实际上是不对的,明明系统已经通过更新补丁安装到4.5.2版本了。你只要确保程序和功能里面已经安装了即可)

  • DevExpress 编译过程中需要用到的dll (http://pan.baidu.com/s/1dENTIsp)解压后采用如下脚本另存为bat格式文件,右键管理员方式运行即可(如果gacutil路径不对,请自行修改,如Program Files (x86), v8.0A等:
    cd /d %~dp0
    set gacutil="C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe"
    
    %gacutil% -i Microsoft.Data.Edm.dll
    %gacutil% -i Microsoft.Data.OData.dll
    %gacutil% -i Microsoft.Data.Services.Client.dll
    %gacutil% -i Microsoft.Data.Services.dll
    %gacutil% -i Microsoft.SharePoint.dll
    %gacutil% -i Microsoft.SharePoint.Publishing.dll
    %gacutil% -i Microsoft.Web.CommandUI.dll
    %gacutil% -i dotless.Core.dll
    %gacutil% -i ICSharpCode.SharpZipLib.dll
    %gacutil% -i System.Spatial.dll
    
    pause
    

      

 

三:重编译 DevExpress 程序集

1、点击编译,等待进度条走完。

2、错误处理:

目前安装我上述环境编译完有一个失败 

SourceBuilderTool.exe编译后同目录下会生成build_errors.log文件,下面列一下部分错误的解决方法:

  • Error -DevExpress.Web.Mvc5.v15.1
  • Error -DevExpress.Web.Mvc.v15.1
  • Error -DevExpress.Dashboard.v15.1.Web.Mvc5
  • Error -DevExpress.Dashboard.v15.1.Web.Mvc

以上四个项目是缺少ASP.NET MVC 3 RTM组件导致,安装后即可解决。(DevExpress官方真是坑爹)

  • 2019/3/2 13:43:08 Error -DevExpress.WinRTPresenter

Microsoft Windows [版本 6.1.7601]

版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Program Files\DevExpress 15.1\Components\Sources>"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" /nologo /t:Rebuild /verbosity:quiet /p:Configuration=Release;Platform=AnyCPU;OutputPath=..\..\..\Bin\WinRT\ "C:\Program Files\DevExpress 15.1\Components\Sources\DevExpress.XtraBars\DevExpress.WinRTPresenter\DevExpress.WinRTPresenter.csproj"
C:\Program Files\DevExpress 15.1\Components\Sources\DevExpress.XtraBars\DevExpress.WinRTPresenter\DevExpress.WinRTPresenter.csproj(104,3): error MSB4019: 未找到导入的项目“C:\Program Files\MSBuild\Microsoft\WindowsXaml\v11.0\Microsoft.Windows.UI.Xaml.CSharp.targets”。请确认 <Import> 声明中的路径正确,且磁盘上存在该文件。

这个报错是因为缺少WindowsXaml,有时候是提示V12.0,装了VS2013就有了V12.0,可能是项目的代码写的有问题吧。 (XMAL目前还没编译成功,试过用WIN10 LTSC 2019编译失败,因为缺少C:\Program Files\MSBuild\Microsoft\WindowsXaml\v12.0\Microsoft.Windows.UI.Xaml.CSharp.targets这个文件,试了用WIN8.1+VS2010sp1+VS2013update5的环境编译,还是不行。)

  • Error -DevExpress.Persistent.BaseImpl

 DevExpress.Persistent.BaseImpl.csproj提示出错是因为项目文件里面的StrongKey为false导致注册DLL失败,编辑这个项目文件手动改为true即可,如下:

<AssemblyOriginatorKeyFile>..\..\DevExpress.Key\StrongKey.snk</AssemblyOriginatorKeyFile>
<SignAssembly>true</SignAssembly>

 

DevExpress的代码重编译真是坑人,真是太麻烦了,又要新系统,又要用旧的VS2010,那个工具又是各种坑爹,谷歌访问不了,判断.NET4.5也是经常判断错误。

 

五:感谢

官方重编译教程:https://www.devexpress.com/Support/Center/Question/Details/A609/how-to-rebuild-assemblies-from-the-source-code

部分参考:码农很忙 - DevExpress Components16.2.6 Source Code 重编译教程

C:\Program Files\MSBuild\Microsoft\WindowsXaml

posted @ 2019-03-01 17:35  danch  阅读(1528)  评论(0编辑  收藏  举报