成功编译Dx11.1.6 & Xaf11.1.6的方法

成功编译Dx11.1.6 & Xaf11.1.6的方法 2WorkRoom3整理 2015-5-20 10:20
特别说明:资料出处:http://blog.youkuaiyun.com/luxy/article/details/6857700,希望大家多多支持原作,再次感谢原作者的无私奉献,谢谢;


    编译Dx11.1.6没有什么难度,但编译xaf11.1.6却几经波折,经过几天摸索,并参考网上的一些资料,我终于成功的编译了DX11.1.6 & Xaf11.1.6源代码,现将我的编译过程总结一下:
1.安装环境是:XP SP3 + vs2008 + vs2010;


2.安装SILVER LIGHT 4.0开发工具;


3.备好动态链接库,如下的DLL:
  ActiveReports.Interop.DLL
  ActiveReports3.DLL
  ActiveReports.PdfExport.dll
  ActiveReports.Viewer3.dll
  Microsoft.AnalysisServices.AdomdClient.dll
  Microsoft.Silverlight.Testing.dll
  Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight.dll
  Moq.dll
  nunit.framework.dll
  System.Data.SQLite.DLL
 把Microsoft.AnalysisServices.AdomdClient.dll和Microsoft.Silverlight.Testing.dll复制到C:\Program Files\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0目录下。


4. 修改源代码中的乱码。
    用记事本打开: \DXperience_11.1.6\Conponents\Sources\DevExpress.CodeParser.SL\CodeGen\StatementCodeGenBase.cs 和 \DXperience_11.1.6\Conponents\Sources\DevExpress.CodeParser\CodeGen\StatementCodeGenBase.cs。
    找到:return name == "獵aret? || name == "獴lockAnchor?; 改成 :return name == "Caret" || name == "BlockAnchor";


5.如果是VS2010下编译xaf还要修改如下的源代码:


1). 用记事本打开: \DXperience_11.1.6\eXpressApp FrameWork\Sources\DevExpress.Persistent\DevExpress.Persistent.BaseImpl\DevExpress.Persistent.BaseImpl.csproj 修改 ToolsVersion="4.0" 为 ToolsVersion="3.5";


2).用记事本打开: \DXperience_11.1.6\eXpressApp FrameWork\Sources\DevExpress.ExpressApp.Design\DevExpress.ExpressApp.Design\DevExpress.ExpressApp.Design.csproj 修改 ToolsVersion="3.5" 为 ToolsVersion="4.0";


3).用记事本打开: \DXperience_11.1.6\eXpressApp FrameWork\Sources\DevExpress.ExpressApp.Design\DevExpress.ExpressApp.Design.ModelEditor\DevExpress.ExpressApp.Design.ModelEditorcsproj 修改 ToolsVersion="3.5" 为 ToolsVersion="4.0";


4).用记事本打开: \DXperience_11.1.6\eXpressApp FrameWork\Sources\DevExpress.ExpressApp.Design\DevExpress.ExpressApp.Design\AssemblyInfo.cs 增加一行[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]


5).用记事本打开: \DXperience_11.1.6\eXpressApp FrameWork\Sources\DevExpress.ExpressApp.Design\DevExpress.ExpressApp.Design.ModelEditor\Proberties\ AssembyInfo.cs 增加一行[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]


[rem 表示此命令后的字符为解释行,不执行,只是给自己今后查找用的。:: 也可以起到 rem 的注释作用, 而且更简洁有效。]
6.如果是VS2010下编译xaf还要修改如下脚本:\DXperience_11.1.6\eXpressApp FrameWork\Sources\buildall.bat:
rem 这几行 cscript replace.vbs ".\DevExpress.Persistent\DevExpress.Persistent.BaseImpl\DevExpress.Persistent.BaseImpl.csproj" "ToolsVersion='4.0'" "ToolsVersion='3.5'"
cscript replace.vbs ".\DevExpress.Persistent\DevExpress.Persistent.BaseImpl\DevExpress.Persistent.BaseImpl.csproj" "<OldToolsVersion>3.5</OldToolsVersion>" ""


rem 这几行cscript replace.vbs ".\DevExpress.ExpressApp.Design\DevExpress.ExpressApp.Design\DevExpress.ExpressApp.Design.csproj" "ToolsVersion='3.5'" "ToolsVersion='4.0'"
cscript replace.vbs ".\DevExpress.ExpressApp.Design\DevExpress.ExpressApp.Design.ModelEditor\DevExpress.ExpressApp.Design.ModelEditor.csproj" "ToolsVersion='3.5'" "ToolsVersion='4.0'"


cscript addString.vbs ".\DevExpress.ExpressApp.Design\DevExpress.ExpressApp.Design\AssemblyInfo.cs" "[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]"
cscript addString.vbs ".\DevExpress.ExpressApp.Design\DevExpress.ExpressApp.Design.ModelEditor\Properties\AssemblyInfo.cs" "[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]"


因为已在第5点手动修改了源代码,所以这里就得注释掉,如果让脚本修改源代码,在c:盘上的临时原代码文件的第一行第一列会产生乱码,而编译是调用临时文件的,导致编译失败。我就是被这个问题困绕很久才发现的。所以把脚本中的相关语句REM掉;


7.把MICROSOFT.NET\FRMAWORK\3.5目录下的:Microsoft.CompactFramework.Build.Tasks.dll,Microsoft.CompactFramework.Common.targets,Microsoft.CompactFramework.CSharp.targets,Microsoft.CompactFramework.VisualBasic.targets复制到2.0和4.0的目录下。


8.做好上面的准备工作后就可以编译了的,为了编译成功,最好重新启动电脑,不要运行应用程序,关掉360木马防火墙。


9.如果是同时编译XAF,可以直接运行XAF的编译脚本,不需要先编译DX控件。打开defines.bat设置好路径,如果同时装vs 2010设置vsver=vs2010,运行DXperience_11.1.6\eXpressApp FrameWork\Sources\clear.bat。运行clear.bat后必须把第2点备好的dll复制到DXperience_11.1.6\eXpressApp FrameWork\Sources\DevExpress.dll和DXperience_11.1.6\Components\Sources\DevExpress.dll目录下。


10.运行DXperience_11.1.6\eXpressApp FrameWork\Sources\buildall.bat。


后记:经过10个步骤顺利完成编译。如果只编译Dx控件不编译XAF只要上面的1,2,3,4个步骤,然后运行DXperience_11.1.6\Components\Sources\clear.bat。复制第2点dll文件到DXperience_11.1.6\Components\Sources\DevExpress.dll目录下,运行DXperience_11.1.6\Components\Sources\buildall.bat就好;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值