簡體   English   中英

共享庫中的NuGet跨項目依賴項

[英]NuGet cross-project dependencies in shared library

設置:我在VS 2017中創建了一個針對.Net Standard 2.0的庫,該庫使用NuGet引用第三方驅動程序並管理其依賴項。 到現在為止還挺好。

下一步是創建一個使用(共享)庫的應用程序,在這種情況下,這是一個針對.Net Core的控制台應用程序。 我當然可以添加對構成共享庫的DLL的引用。 該代碼可以編譯,但由於第3方缺少的東西而無法運行。 我當然可以將所有必需的DLL復制到應用程序中,但是出於明顯的原因,我寧願使用NuGet。
我對NuGet不太熟悉,從未在這個星座中使用過它,並且閱讀過諸如NuGet跨項目依賴項之類的文章,給人的印象是,我需要弄亂應用程序的項目文件,才能以完整的形式獲取庫但可以肯定,這不是前進的方向。

所以我的問題是-是庫方面的問題,即我是否需要以特定的方式構建或導出,或者是在應用程序方面,恕我直言,IMHO不需要了解有關該級別的詳細信息它消耗一些庫。

任何幫助,不勝感激!

我將以這種方式與其他幾個解決方案共享一個大型,復雜的庫。

首先,設置您的庫。 右鍵單擊庫的項目名稱,然后選擇“屬性”。 在大約一半的位置,您會看到一個標簽為Packages的標簽。 您可以在每次重建項目時使用它來自動生成NuGet軟件包。 只需增加版本號即可。 我使用四個位置版本編號-前三個是semver樣式 (主要版本,次要版本,補丁程序版本),而第四個我為每個新版本手動遞增。

我建議在驅動器或網絡上為本地NuGet軟件包專門創建一個文件夾。 您可以在每個項目的文件夾下創建文件夾。 然后,將調試並釋放構建輸出到該項目文件夾,NuGet包也將在此處生成。

最后,回到Visual Studio,轉到“工具”->“選項”->“ NuGet程序包管理器”->“程序包源”,然后將該頂級文件夾添加為程序包源。

從那里開始很簡單-在使用的應用程序中打開NuGet依賴項。 右上角有一個下拉列表,您可以在其中選擇軟件包的來源。 它將自動搜索所有子文件夾,並找到您創建的任何軟件包。 現在,當您調整庫時,只需單擊一下即可更新客戶端應用程序。

暫無
暫無

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

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