添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接


很荣幸小伙伴能看到这篇文章,这里是​ ​HandyControl​ ​在github上的​ ​传送门​ ​,同时附送一份基础的官方控件​ ​使用说明文档-github​ ​或者​ ​使用说明文档-码云​ ​,官方文档首页也是源码编译的基础引导,此文章算是对此的细化和补充

如果没有阅读​ ​HandyControl新手引导-CSDN​ ​或者​ ​HandyControl新手引导-博客园​

话不多说,开始进行本篇博客的重点,通过源码编译​ ​HandyControl官方案例​

你听我说-HandyControl源码编译_github

下载源码项目

下载地址,途径如下:

所属平台

下载链接

Github[git]

​https://github.com/HandyOrg/HandyControl.git​

Gitee[git]

​https://gitee.com/handyorg/HandyControl.git​

Github[zip]

​https://github.com/HandyOrg/HandyControl/archive/refs/heads/master.zip​

Gitee[zip]

​https://gitee.com/handyorg/HandyControl/repository/archive/master.zip​

根据实际情况,选择是通过​ ​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​

你听我说-HandyControl源码编译_.net_02

方式二、下载

直接下载,此处以​ ​Gitee​ ​为例,本地下载文件为​ ​handyorg-HandyControl-master.zip​ ​,解压目录如下:

你听我说-HandyControl源码编译_.net_03

编译项目

环境要求

由于项目本身是在​ ​.Net5 SDK​ ​的本地环境下开发,所以需要小伙伴本地已经安装​ ​.Net5 SDK​ ​,​ ​Visual Studio 2019 16.x​ ​版本,否则项目将出现如下状况:

你听我说-HandyControl源码编译_git_04

打开目录​ ​src​ ​中,启动解决方案​ ​HandyControl.sln​ ​,启动项目,初次加载会比较缓慢,需要依据项目中的包依赖,自动下载​ ​Nuget​ ​包到本地的包缓存目录,请耐心等待几分钟

项目结构

你听我说-HandyControl源码编译_WPF_05

​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​ ​某些版本未安装

需要编辑的项目如下:

你听我说-HandyControl源码编译_github_06

带黄色小感叹​ ​不要慌,先截个图发个朋友圈​ ​,这其实是,本地缺少对应版本的​ ​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​ ​,记住一定是上图截图部分的所有项目,​ ​删除后​ ​,​ ​重新生成项目​ ​或​ ​重新生成解决方案​ ​,可以发现依赖项中的黄色感叹号已经消失

你听我说-HandyControl源码编译_WPF_07

运行案例

选择目标的项目​ ​HandyControlDemo_Net_GE45​ ​或者​ ​HandyControlDemo_Net40​ ​运行项目,​ ​Debug​ ​调试运行即可

你听我说-HandyControl源码编译_github_08

运行期间会添加注册表,为正常现象,选择允许,至此,案例项目就可以正常运行

你听我说-HandyControl源码编译_源码编译_09

本地生成类库包

选择模式为​ ​Release​ ​发布模式,重新生成项目,即可在项目中``

你听我说-HandyControl源码编译_git_10

​输出窗口​ ​内容如下:

你听我说-HandyControl源码编译_源码编译_11

去到对应目录可以看到相关生成的​ ​Release​ ​版本类库程序集

你听我说-HandyControl源码编译_源码编译_12

至此,源码编译就算完成了,剩下的就是依据依据当前项目目标版本引用对应的​ ​HandyControl.dll​ ​版本

注意

不少资源并未包含在​ ​HandyControl.dll​ ​程序集中,如果小伙伴瞧得起对应案例的资源样式,可以考虑自己从案例中刨出去使用即可

后续将继续构建​ ​HandyControl​ ​的相关系列,有相关想法请关注公众号,进行留言:【​ ​HandyControl​ ​】

你听我说-HandyControl源码编译_源码编译_13