很榮幸小伙伴能看到這篇文章,這里是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
】