您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何解析nuget nuspec清單,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
在創建一個NuGet包之前我們應該先創建一個以.nuspec
為后綴的xml清單文件,這個清單文件描述了包的內容,在安裝NuGet包的過程中這個清單文件扮演者很重要的角色。實際上它的作用就像app.config一樣,并且是不可或缺的一部分,因此在了解如何創建一個NuGet包之前很有必要了解一下什么是nuspec
清單文件。
nuspec文件是一個xml格式的清單文件,它用于描述包的內容和驅動包的生成過程。下面是一個典型的nuspec文件定義:
<?xml version="1.0"?> <package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"> <metadata> <!-- 包的id,在托管庫內必須唯一 --> <id>xxx.xxx.xxx</id> <!-- 解析依賴項時使用的包版本號 --> <version>1.0.0.1</version> <!-- 在庫中顯示的作者 --> <authors>nizhenghua</authors> <!-- 庫的擁有者,便于用戶能夠輕松的獲取到該擁有者發布的其他的包 --> <owners>nizhenghua</owners> <!-- 項目的許可和地址(比如將源代碼發布到Github上時可以在此填寫許可和) --> <licenseUrl>http://opensource.org/licenses/MS-PL</licenseUrl> <projectUrl>http://github.com/nizhenghua</projectUrl> <!-- 在Visual Studio中的可視化包管理器中展示的圖標 --> <iconUrl>https://cache.yisu.com/upload/information/20210524/347/782120.png</iconUrl> <!-- 在用戶安裝包的時候是否提示接受許可信息 --> <requireLicenseAcceptance>false</requireLicenseAcceptance> <!-- 發布記錄 --> <releaseNotes>Bug fixes and performance improvements</releaseNotes> <!-- 包的描述信息 --> <description>xxxxxxxxxxxxxxxxx</description> <!-- 版權 --> <copyright>Copyright ?2016 xxxxx</copyright> <!-- 標簽,用戶可通過標簽進行搜索 --> <tags></tags> <!-- 包的依賴關系,在安裝包的時候會自動安裝所有依賴 --> <dependencies> <dependency id="Newtonsoft.Json" version="9.0" /> </dependencies> </metadata> <!-- 當包安裝完成的時候會自動展示readme.txt(包不能是依賴項目) --> <files> <file src="readme.txt" target="" /> </files> </package>
nuspec中必須包含以下的信息:
id:標識符,在托管庫內必須唯一
version
title:用于在NuGet庫中顯示
authors
owners
description
除此之外還可以包含releaseNotes、coptright、tags等其他信息。
通過項目創建
定位到包含csproj項目文件的目錄,執行nuget spec
通過已有的dll創建
nuget spec dll路徑
通過基于約定的目錄創建
文件夾 | 描述 | 安裝時的操作 |
---|---|---|
tools | powershell腳本和命令行程序 | 內容會復制到項目,tools文件夾會添加到環境變量 |
lib | dll、xml、pdb等文件 | dll會添加到引用,xml和pdb復制到項目 |
content | 任意文件 | 內容復制到項目根目錄 |
build | MSBuild target和props文件 | 自動插入到項目文件(NuGet2.x)或project.json.lock(NuGet3.x) |
Dependency:在兼容的前提下可以在任何項目中安裝
DotnetCliTool:作為.NET CLI的擴展,必須在命令行調用,且只能在.NET Core項目中使用
Custome
nuget pack xxx.nuspec
nuget pack xxx.csproj
如果在當前nuspec清單文件夾下使用命令可以簡寫:nuget pack
nuget pack xxx.csproj -properties Configuration = Release
使用 nuget pack xxx.csproj -symbols
將符號信息一起打進包內
可以在nuspec清單中自行設置對其他包的依賴信息。例如:
<dependencies> <dependency id="Newtonsoft.Json" version="9.0" /> <dependency id="EntityFramework" version="6.1.0" /> </dependencies>
設置的依賴項會在該包安裝完成后自行安裝。其中最重要的屬性就是Version,一個包通過不停的更新迭代可能會有多個版本,可以通過Version來指定依賴的是包的哪個版本。NuGet也提供了一組指定版本范圍的符號使得我們可以更加靈活的設置依賴項的版本號。
符號 | 應用規則 | 描述 |
---|---|---|
1.0 | x >= 1.0 | 大于等于1.0版本 |
(,1.0) | x < 1.0 | 小于1.0版本 |
(1.0,) | x > 1.0 | 大于1.0版本 |
[,1.0] | x <= 1.0 | 小于等于1.0版本 |
[1.0,] | x >= 1.0 | 大于等于1.0版本 |
(1.0,2.0] | 1.0 < x <= 2.0 | 大于1.0版本,小于等于2.0 |
這種表示方法和數學上的集合類似,小括號表示的區間不包含端點,中括號包含端點
刪除版本號的前導0 如1.00.1會被處理成1.0.1
刪除版本號第四部分的0 如1.0.1.0會被處理成1.0.1
在2.5版本之前,如果在安裝包的過程中已經安裝了依賴的包,那么會自動升級到最新的版本,2.5之后的版本不會再安裝已經存在的包
以上就是如何解析nuget nuspec清單,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。