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