源代码编译工具SourceBuilderTool104 的源代码
本帖最后由 ty_tang 于 2017-4-9 00:31 编辑使用此工具可以跳出部分编译器路径限制,编译net 版本限制。本人用它可以使用VS2015 编译net4.6 的版本。
本版第一次发帖,说的不清楚见谅。
编译15.2.9时发现很麻烦,写MSbuild脚本又很费事。发现有SourceBuilderTool104,但是使用起来老是出错。此外没找到帮助。
不爽之下,反编译源码,调试一下之后可以编译。给大家分享一下经验。
如果各位无法编译注意以下几点。由于每个人需求和环境不同,建议大家进行修改。
注意以下事项:
1)
默认注册表中应该有Software\DevExpress\DXperience
或者Software\DevExpress\Components
(GetDXVersionsInstalled()函数中可以看到)
2)
默认源代码路径应该是%(devexpressroot)\Components\Sources\
参见 FillDXVersionsTable(RegistryKey key)函数
建议直接自己定义以下几个变量。就不管这个默认路径了
Version = str,
RootFolder = str2,
SourceFolder = str3
3) 默认编译器是VS2010,使用VS 2015 需要注意修改配置。但是其他winform的没有问题直接编译能过。
4) 源代码中默认 MSbuild 版本似乎是12.0
可以看到部分关于wpf之类类库编译有问题,主要是因为源代码的工程中有 ,其实完全可以修改
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '12.0' ">
<VisualStudioVersion>12.0</Visualstudioversion>
导致VS2015编译环境下找不到路径
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
5)其他有些类库的无法编译 MVC 强名字 之类的参见其他帖子
https://www.devexpress.com/Support/Center/Question/Details/A609
https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument112832
DevExpress.Key下面的strong name替换的很多了。是否需要替换我的确没有注意。反正拿来源代码就覆盖了。后续可以告诉我是否需要这一步。
参见
http://blog.csdn.net/appetizer/article/details/50663356
6) StartBuildingProcess()
内部的 this.DeleteToolboxItems();
应该可以注释,没有什么用。我只是调试这里特别慢,觉得没有用。
直接注释。没有查原因。
7)注意,编译测试结束后,建议直接执行sourcebuild 。否则在VS 下难免加载devexpress 旧版本,clear gac时无法清除旧版本。
8)如果编译时提示找不到devexpress 库。自己检查版本和publicKey 是否一致
如果这样说吗清理gac时没有清理干净。
9)如果使用.net 4.5 编译,建议自行setting 中的版本。同时修改源代码工程的配置。
我觉得这个程序有点写的太死,如果不安装,那么部分编译过不去。
安装了,在部分清除dll时有时出上面的错误。
注意一点,key 编译工具可以自动生成,但是代码中配置的snk路径不完全一致,有的就在source 目录。有的配置的路径在source 的上两级目录下。
例如
可以拷贝 DevExpress.Key 目录到相应目录即可,也可以修改AssemblyInfo.cs 内部。
细看编译工具不是很方便,的确有写的较死板的地方。感觉还不太完善。
但是修改它似乎比自己写更容易些。
其实看来也是瞎折腾。分享给大家,权作为一乐。如果有加分最好,谢谢版主!
本帖最后由 ty_tang 于 2017-4-7 22:40 编辑
怎么设置回复可见?给个赞扬也行啊。 vs2017 下可以编译成功吗 panyijun 发表于 2017-4-8 10:30
vs2017 下可以编译成功吗
没有测,只测了vs2015可以。
页:
[1]