使用nuget管理c 庫的原理

2021-07-14 03:39:31 字數 1236 閱讀 8478

通常使用c++庫需要在專案配置裡設定標頭檔案包含路徑和鏈結路徑。所以不同於c#庫直接將檔案放在指定位置就可以使用。

nuget指定了一系列的特殊目錄,用來管理包的內容,但是並不能管理c++庫,nuget自從2.5後開始支援管理c++庫。為此特意規定了乙個build目錄,build目錄中可以通過使用msbuild指令碼來達到自動配置路徑的效果,從而可以使用c++庫。

nuget包下的build目錄中按照平台來劃分子目錄,但是c++庫統一設為native平台,所以只有乙個native目錄。native下面有一系列的目錄,存放著庫的檔案,例如標頭檔案、lib檔案、dll之類的。並且根據配置不同,會分別存放多個版本(debug、release、x86,x64之類)的檔案。

通常目錄結構是這樣的

***.1

.0.nupkg

└─xx.1

.0.nuspec

└─build

└─native

├─bin

│ └─win32

│ └─v120

│ └─dynamic

│ ├─debug

│ │ └─xx_d.dll

│ └─release

│ └─xx_d.dll

├─include

│ └─xx.h

└─lib

│ └─win32

│ └─v120

│ └─dynamic

│ ├─debug

│ │ └─xx_d.lib

│ └─release

│ └─xx_d.lib

└─xx.targets

nuget管理器使用包的時候會尋找native下面和包名一樣的.targets檔案。並把他包含到專案的工程檔案(.vcxproj)中。.targets檔案是乙個msbuild指令碼,通常裡面會自動設定標頭檔案包含路徑和鏈結路徑、並且設定對應版本的鏈結庫,最後將對應版本的dll自動複製到生成目錄裡面。

然後填寫好.nuspec檔案中的描述資訊後就可以使用nuget命令打包,然後發布後就像正常的nuget包一樣使用。使用nuget包來引用c++庫後不需要再做任何額外的設定,只需要安裝nuget包就可。

nuget的原理 使用nuget管理c 庫的原理

使用nuget管理c 庫的原理 簡介通常使用c 庫需要在專案配置裡設定標頭檔案包含路徑和鏈結路徑。所以不同於c 庫直接將檔案放在指定位置就可以使用。nuget指定了一系列的特殊目錄,用來管理包的內容,但是並不能管理c 庫,nuget自從2.5後開始支援管理c 庫。為此特意規定了乙個build目錄,b...

使用 NuGet 管理專案庫

nuget 是一種 visual studio 擴充套件,它能夠簡化在 visual studio 專案中新增 更新和刪除庫 部署為程式包 的操作。nuget 程式包是打包成乙個檔案的檔案集,副檔名是 nupkg,使用開放打包約定 opc 格式。opc 僅僅是具有某些元資料的 zip 檔案的首字母縮...

使用 NuGet 管理專案庫

共享和重用 是乙個很大的挑戰。不相信?請隨便走進一間中型或大型工作室,問問他們有多少日誌記錄庫。訪問多家公司後,您將發現他們擁有比例非常高的內部日誌記錄庫,而這些庫中有一些非常不錯,例如,log4net nlog 和 error logging modules and handlers 即 elma...