你听我说-HandyControl源码编译
很荣幸小伙伴能看到这篇文章,这里是HandyControl
在github上的传送门,同时附送一份基础的官方控件使用说明文档-github或者使用说明文档-码云,官方文档首页也是源码编译的基础引导,此文章算是对此的细化和补充
如果没有阅读HandyControl新手引导-CSDN
或者HandyControl新手引导-博客园
话不多说,开始进行本篇博客的重点,通过源码编译HandyControl官方案例
下载源码项目
下载地址,途径如下:
所属平台 | 下载链接 |
---|---|
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
方式二、下载
直接下载,此处以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
】
你听我说-HandyControl源码编译相关推荐
- java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实
好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...
- 5单个编译总会编译全部_玩转Android10(五)源码编译开发中常用命令
源码开发编译中,熟练掌握常用命令,可以提高开发工作效率.Android源码中,将相关的命令分为如下几类: 1.初始化源码编译环境 初始化编译环境,为后续提供如lunch.make.xxgrep.god ...
- mono和monodevelop源码编译安装
之所以用源码编译的方式安装mono和monodevelop,是因为通过yum安装的mono不是最新版本,而且monodevelop不能建 asp.net MVC3的工程. 而且通过源码安装,可以进一步 ...
- nginx源码编译、负载均衡及模块的扩展
1.nginx源码编译 实验环境: iptables和selinux关闭 redhat6.5 nginx:test1: 172.25.1.11 [root@test1 ~]# ls nginx-1.1 ...
- mac通过tree源码编译安装tree
通过tree源码编译安装 下载源码:curl -O ftp://mama.indstate.edu/linux/tree/tree-1.6.0.tgz 解压源码:tar xzvf tree-1.6 ...
- 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 安装平台 1 平台 目前Tensor ...
- Nginx 源码编译安装
Nginx 源码编译安装环境 Centos7 Nginx1.8.1 下载地址:http://nginx.org/download/ 选择自己想要的版本 我这边使用1.8.1,下载地址:http: ...
- 基本lnmp平台的搭建(源码编译)
lnmp :linux ,nginx ,mysql ,php 系统环境:rhel6.0 selinux and iptables disabled (这里我们都只用源码编译的方式) 1 ste ...
- 源码编译安装percona-xtrabackup-2.3.2
一.系统包需求 rpm -q libaio-devel libgpg-error-devel libgcrypt-devel autoconf automake libidn-devel libcur ...
最新文章
- 【AI】dlib中图像标注工具 imglab 详细说明
- 【PL/SQL】Excel批量往数据库中插入数据:
- android 如何判断h5页面是否加载完成_H5 键盘兼容性小结
- 自由职业者:5步拿下新项目
- 为啥不用ActiveRecord
- Automatic Judge
- homestead.yaml配置详解
- 绝地求生要java吗_绝地求生卡盟_【Java】几种典型的内存溢出案例,都在这儿了!...
- 系统默认声卡驱动没有均衡器的解决方法
- Git commit --amend 修改提交信息
- K线形态识别—K线反转形态之头部反转形态
- 爬虫_抓取猫眼电影TOP100
- python里面的报错语句翻译_翻译《Writing Idiomatic Python》(二):函数、异常
- BUPT OJ143 Triangle
- 差旅安全,你了解多少?
- Android正方教务系统课程表+查成绩+查考试安排
- 2021年全国职业院校技能大赛:网络系统管理项目-真题-模块C-2全套视频讲解含无线地勘
- 小身板干大事:DATAhawk无人机独创手抛起飞实现3厘米精准测绘
- 【排错必看】Windows系统安装mysql时常见问题及解决方法
- 读入2个整数A和B,然后输出它们的和