你听我说-HandyControl源码编译

简介: 你听我说-HandyControl源码编译

很荣幸小伙伴能看到这篇文章,这里是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 SDKVisual 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_40Net_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


相关文章
|
测试技术
CRC-16 MODBUS原理,附实测可用源码
之前做串口解析,CRC校验一直用和校验,就是吧各个位加在一起,新来一个串口协议,是CRC-16 MODBUS的形式校验,不会呀,从网上找了找资源,没有找到源码,都要下载,分享出来。
CRC-16 MODBUS原理,附实测可用源码
|
C# Windows
WPF中如何使用HandyCotrol控件库
WPF中如何使用HandyCotrol控件库
1579 1
|
定位技术 API C#
.NET开源、功能强大、跨平台的图表库
.NET开源、功能强大、跨平台的图表库
387 8
|
小程序 前端开发 中间件
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
LiveCharts 直方图详解,安装和使用,以及常用属性的说明
本文介绍了LiveCharts在WPF中的应用,包括安装方法、基本使用和直方图(LineSeries)的常用属性说明。安装LiveCharts通过NuGet包管理器进行,使用时需在XAML文件中引入相应的命名空间。文章还提供了直方图的属性详解和综合示例,包括线条样式、坐标轴标签、图例位置等设置,以及如何自定义数据点形状。
LiveCharts 直方图详解,安装和使用,以及常用属性的说明
|
人工智能 API Apache
推荐3款开源、美观且免费的WinForm UI控件库
推荐3款开源、美观且免费的WinForm UI控件库
3314 6
C# WPF 中 外部图标引入iconfont,无法正常显示问题 【小白记录】
本文介绍了在C# WPF应用程序中引入外部iconfont图标时可能遇到的显示问题及其解决方法:1) 检查资源路径和引入格式是否正确,确保字体文件引用格式为“#xxxx”,并正确指向字体文件位置;2) 确保图标资源被包含在程序集中,通过设置字体文件的生成操作为Resource(资源)来实现。
C# WPF 中 外部图标引入iconfont,无法正常显示问题 【小白记录】
|
前端开发 Java API
Swagger接口文档 —— 手把手教学,全方位超详细小白能看懂,百分百能用Java版
本文提供了一份详细的Swagger接口文档生成工具的使用教程,包括了导入依赖、配置类设置、资源映射、拦截器配置、Swagger注解使用、生成接口文档、在线调试页面访问以及如何设置全局参数(如token),旨在帮助Java开发者快速上手Swagger。
11299 0
Swagger接口文档 —— 手把手教学,全方位超详细小白能看懂,百分百能用Java版
|
存储 开发框架 前端开发
在EasyUI项目中使用FileBox控件实现文件上传处理
在EasyUI项目中使用FileBox控件实现文件上传处理
|
开发框架 前端开发 JavaScript
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(10) -- 在DataGrid上直接编辑保存数据
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(10) -- 在DataGrid上直接编辑保存数据