很荣幸小伙伴能看到这篇文章,这里是
HandyControl
在github上的
传送门
,同时附送一份基础的官方控件
使用说明文档-github
或者
使用说明文档-码云
,官方文档首页也是源码编译的基础引导,此文章算是对此的细化和补充
如果没有阅读
HandyControl新手引导-CSDN
或者
HandyControl新手引导-博客园
话不多说,开始进行本篇博客的重点,通过源码编译
HandyControl官方案例
下载源码项目
下载地址,途径如下:
根据实际情况,选择是通过
Github
还是
Gitee
进行源码下载
当然本地需要安装
git
,用于克隆项目源码,压缩包方式下载也行,总之本地得有一份
新鲜
的源码项目
方式一、克隆
选择一个本地目录,
cmd
指令中进行
git
克隆,此处以
Gitee
为例
>git clone https://gitee.com/handyorg/HandyControl.git
Cloning into 'HandyControl'...
remote: Enumerating objects: 487, done.
remote: Counting objects: 100% (487/487), done.
remote: Compressing objects: 100% (304/304), done.
remote: Total 24957 (delta 314), reused 285 (delta 183), pack-reused 24470
Receiving objects: 100% (24957/24957), 49.44 MiB | 4.07 MiB/s, done.
Resolving deltas: 100% (17202/17202), done.
克隆完成后,打开目录
HandyControl
方式二、下载
直接下载,此处以
Gitee
为例,本地下载文件为
handyorg-HandyControl-master.zip
,解压目录如下:
编译项目
环境要求
由于项目本身是在
.Net5 SDK
的本地环境下开发,所以需要小伙伴本地已经安装
.Net5 SDK
,
Visual Studio 2019 16.x
版本,否则项目将出现如下状况:
打开目录
src
中,启动解决方案
HandyControl.sln
,启动项目,初次加载会比较缓慢,需要依据项目中的包依赖,自动下载
Nuget
包到本地的包缓存目录,请耐心等待几分钟
项目结构
Net_40
文件夹下代表着支持
Net Fx4.0
的相关案例和程序集,
HandyControlDemo_Net_40
是对应的
4.0
的启动项目入口,本地需要安装
.Net Framework4.0
Net_GE45
文件夹针对
.Net版本
大于等于
4.5
,同理,包含Demo字样的项目为4.5版本本身及其以上的
Fx
版本、
Core版本
以及
Net5
Shared
文件目录下的项目是
Net_40
和
Net_GE45
共通的依赖的相关
共享项目源码
和
辅助项目
源码编译
调整版本
由于项目几乎包含了从
Fx4.0
开始的所有
Framework
版本,
Core
以及
Net
版本,所有项目中的依赖项会比较多,编译源码项目,需要将当前并不需要的版本通过人工编辑项目
.csproj
内容方式进行处理,如果直接调试或者运行,是不会成功的,只会调试失败,提示本地缺少
Framework
某些版本未安装
需要编辑的项目如下:
带黄色小感叹
不要慌,先截个图发个朋友圈
,这其实是,本地缺少对应版本的
framework
的正常现象,双击项目本身,一般会看到如下内容:
原始
<PropertyGroup>
.......
<TargetFrameworks>netcoreapp3.0;netcoreapp3.1;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net5.0-windows</TargetFrameworks>
.......
</PropertyGroup>
删除后
<PropertyGroup>
.......
<TargetFrameworks>netcoreapp3.0;netcoreapp3.1;net45;net451;net452;net46;net461;net462;net471;net472;net48;net5.0-windows</TargetFrameworks>
.......
</PropertyGroup>
将上图项目中的内容进行修改,删除
<TargetFrameworks></TargetFrameworks>
节点内本地不需要或者缺少的版本,本地需要的皆可以保留,此处作为演示,仅仅删除
net471
,记住一定是上图截图部分的所有项目,
删除后
,
重新生成项目
或
重新生成解决方案
,可以发现依赖项中的黄色感叹号已经消失
运行案例
选择目标的项目
HandyControlDemo_Net_GE45
或者
HandyControlDemo_Net40
运行项目,
Debug
调试运行即可
运行期间会添加注册表,为正常现象,选择允许,至此,案例项目就可以正常运行
本地生成类库包
选择模式为
Release
发布模式,重新生成项目,即可在项目中``
输出窗口
内容如下:
去到对应目录可以看到相关生成的
Release
版本类库程序集
至此,源码编译就算完成了,剩下的就是依据依据当前项目目标版本引用对应的
HandyControl.dll
版本
注意
不少资源并未包含在
HandyControl.dll
程序集中,如果小伙伴瞧得起对应案例的资源样式,可以考虑自己从案例中刨出去使用即可
后续将继续构建
HandyControl
的相关系列,有相关想法请关注公众号,进行留言:【
HandyControl
】