你聽我說-HandyControl源碼編譯


很榮幸小伙伴能看到這篇文章,這里是HandyControl在github上的傳送門,同時附送一份基礎的官方控件使用說明文檔-github或者使用說明文檔-碼雲,官方文檔首頁也是源碼編譯的基礎引導,此文章算是對此的細化和補充

如果沒有閱讀HandyControl新手引導-CSDN或者HandyControl新手引導-博客園

話不多說,開始進行本篇博客的重點,通過源碼編譯HandyControl官方案例

blog-hbh-hc-view

下載源碼項目

下載地址,途徑如下:

所屬平台 下載鏈接
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

blog-hbh-hc-github

方式二、下載

直接下載,此處以Gitee為例,本地下載文件為handyorg-HandyControl-master.zip,解壓目錄如下:

blog-hbh-hc-giteezip

編譯項目

環境要求

由於項目本身是在.Net5 SDK的本地環境下開發,所以需要小伙伴本地已經安裝.Net5 SDKVisual Studio 2019 16.x版本,否則項目將出現如下狀況:

blog-hbh-hc-error

打開目錄src中,啟動解決方案HandyControl.sln,啟動項目,初次加載會比較緩慢,需要依據項目中的包依賴,自動下載Nuget包到本地的包緩存目錄,請耐心等待幾分鍾

項目結構

blog-hbh-hc-projecttree

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

需要編輯的項目如下:

blog-hbh-hc-editproject

帶黃色小感嘆不要慌,先截個圖發個朋友圈,這其實是,本地缺少對應版本的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,記住一定是上圖截圖部分的所有項目,刪除后重新生成項目重新生成解決方案,可以發現依賴項中的黃色感嘆號已經消失

blog-hbh-hc-right

運行案例

選擇目標的項目HandyControlDemo_Net_GE45或者HandyControlDemo_Net40運行項目,Debug調試運行即可

Build_Config

運行期間會添加注冊表,為正常現象,選擇允許,至此,案例項目就可以正常運行

blog-hbh-hc-run

本地生成類庫包

選擇模式為Release發布模式,重新生成項目,即可在項目中``

blog-hbh-hc-release

輸出窗口內容如下:

blog-hbh-hc-output

去到對應目錄可以看到相關生成的Release版本類庫程序集

blog-hbh-hc-dll

至此,源碼編譯就算完成了,剩下的就是依據依據當前項目目標版本引用對應的HandyControl.dll版本

注意

不少資源並未包含在HandyControl.dll程序集中,如果小伙伴瞧得起對應案例的資源樣式,可以考慮自己從案例中刨出去使用即可

后續將繼續構建HandyControl的相關系列,可關注私信或直接評論回復【HandyControl


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM