簡體   English   中英

在兩個項目之間共享軟件包的最佳實踐?

[英]Best practice for sharing packages between 2 projects?

我知道很多人都在使用兩個項目AppNameAppName.API 當兩個項目都需要同一包中的類時,會發生什么情況。

在我看來,我有兩個選擇,創建另一個項目( AppName.Common )並在AppNameAppName.API上都引用該項目,或者只是通過Nuget將包添加到兩個項目中。

哪個是最佳做法? 我什至沒有錯,有沒有我錯過的選擇? 我是編程的初學者,只是在尋找有關高級主題的指南。

非常感謝。

NuGet是為包管理創建的,Visual Studio為您處理包管理。 我認為此問題的“最佳實踐”是主觀的。 我建議您將兩個項目都添加到解決方案中。 然后,在解決方案資源管理器中右鍵單擊您的解決方案,然后選擇“管理解決方案的NuGet程序包”菜單選項。

管理解決方案的NuGet程序包...

然后,從程序包管理器中,將程序包安裝到解決方案的兩個項目中。 當您將此解決方案從一台機器移到另一台機器時,或者其他人在使用它時,他們可以簡單地還原軟件包以安裝依賴項。 您的軟件包將存儲在解決方案級別的公共文件夾中。

通用軟件包文件夾

只需通過Nuget將軟件包添加到兩個項目中即可。 傳遞引用方法(依賴項僅依賴於Common)在第二個方面遇到了麻煩,您有3個項目,其中兩個需要依賴項,而第三個則不需要,在這一點上,您引入了無意義的依賴項。

不要使程序包管理或項目布局過於復雜; 始終保持簡單,否則它們(作為經驗法則)會在您擴展規模時妨礙您。

編輯:您提到您是編程新手。 您不一定總是需要X.Impl和X.Api(也比僅僅擁有X更好),並且直到您知道為什么可能需要它們為止,最好使事情變得簡單。 您作為新程序員的目標很可能會學習編程。 如果您過於復雜的項目結構和應用程序架構,那么您將浪費時間來進行學習和編程。 專注於編寫盡可能少的代碼,盡可能少的抽象以及創建盡可能少的csprojs(理想情況下為1)。

我同意Nuget最適合軟件包管理。 但是IMO如果不是通用包並且沒有被許多團隊和項目使用,那么最好不要使用它。

為了您的目的,我覺得使用一個通用的類庫並在兩個項目中都引用它非常有效,並且可以解決遠程程序包的調試問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM