中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解析nuget nuspec清單

發布時間:2021-11-16 09:57:05 來源:億速云 閱讀:212 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關如何解析nuget nuspec清單,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創建NuGet包

在創建一個NuGet包之前我們應該先創建一個以.nuspec為后綴的xml清單文件,這個清單文件描述了包的內容,在安裝NuGet包的過程中這個清單文件扮演者很重要的角色。實際上它的作用就像app.config一樣,并且是不可或缺的一部分,因此在了解如何創建一個NuGet包之前很有必要了解一下什么是nuspec清單文件。

什么是.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等其他信息。


使用nuget命令行工具創建nuspec清單文件

  • 通過項目創建
    定位到包含csproj項目文件的目錄,執行nuget spec

  • 通過已有的dll創建
    nuget spec dll路徑

  • 通過基于約定的目錄創建

    文件夾描述安裝時的操作
    toolspowershell腳本和命令行程序內容會復制到項目,tools文件夾會添加到環境變量
    libdll、xml、pdb等文件dll會添加到引用,xml和pdb復制到項目
    content任意文件內容復制到項目根目錄
    buildMSBuild target和props文件自動插入到項目文件(NuGet2.x)或project.json.lock(NuGet3.x)

設置包類型

  • Dependency:在兼容的前提下可以在任何項目中安裝

  • DotnetCliTool:作為.NET CLI的擴展,必須在命令行調用,且只能在.NET Core項目中使用

  • Custome


創建NuGet包

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.0x >= 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

這種表示方法和數學上的集合類似,小括號表示的區間不包含端點,中括號包含端點

3.4版本后對版本號會做一些特殊處理

  • 刪除版本號的前導0 如1.00.1會被處理成1.0.1

  • 刪除版本號第四部分的0 如1.0.1.0會被處理成1.0.1

在2.5版本之前,如果在安裝包的過程中已經安裝了依賴的包,那么會自動升級到最新的版本,2.5之后的版本不會再安裝已經存在的包

以上就是如何解析nuget nuspec清單,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泽州县| 军事| 庆城县| 开江县| 广元市| 皋兰县| 乌拉特前旗| 疏附县| 聊城市| 顺昌县| 齐河县| 南岸区| 赫章县| 榆社县| 漳州市| 凤山县| 广河县| 巍山| 泰兴市| 武汉市| 高雄市| 廊坊市| 如皋市| 泗洪县| 苏州市| 鸡西市| 石景山区| 巴彦淖尔市| 昔阳县| 泸州市| 乐清市| 周至县| 元谋县| 将乐县| 伊宁县| 邓州市| 武强县| 贵港市| 清原| 商河县| 噶尔县|