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

溫馨提示×

溫馨提示×

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

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

.NET?6的Nuget包驗證怎么用

發布時間:2022-03-14 13:34:44 來源:億速云 閱讀:170 作者:iii 欄目:開發技術

這篇文章主要介紹“.NET 6的Nuget包驗證怎么用”,在日常操作中,相信很多人在.NET 6的Nuget包驗證怎么用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”.NET 6的Nuget包驗證怎么用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Demo

使用方式也非常簡單,只需修改項目文件,加上EnablePackageValidation屬性:

<EnablePackageValidation>true</EnablePackageValidation>

包驗證工具提供了三種驗證器:

  • Baseline version validator:根據先前發布的穩定版本的軟件包驗證類庫項目。

  • Compatible runtime validator:驗證特定于運行時的實現程序集是否彼此兼容以及是否與編譯時程序集兼容。

  • Compatible framework validator: 驗證針對一個框架版本編譯的代碼同樣可以在包中的所有其他框架版本上運行。

以Baseline version validator為例。假設1.0.0版本有如下方法:

public class Class1
{
    public void Demo(string param1)
    { 
        Console.WriteLine("Demo 1.0.0: {param1}");
    }
}

當我們接到需求,為Demo方法增加了參數:

public class Class1
{
    public static void Demo(string param1, string param2)
    {
        Console.WriteLine("Demo 1.1.0: {param1} {param2}");
    }
}

代碼邏輯沒有問題,但是當我們發布1.1.0版本后,而引用了這個包的項目也包含引用過1.0.0版本的其他類庫。那么運行時很可能收到如下異常:

.NET?6的Nuget包驗證怎么用

現在讓我們加上Baseline version validator。修改類庫項目文件內容如下:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
   <PackageVersion>1.1.0</PackageVersion>
   <EnablePackageValidation>true</EnablePackageValidation>
   <PackageValidationBaselineVersion>1.0.0</PackageValidationBaselineVersion>
  </PropertyGroup>

</Project>

PackageValidationBaselineVersion就是用于對比的基線版本。

再次使用dotnet pack打包,你將會收到類似如下錯誤提示:

error CP0002: Member 'ClassLibrary1.Class1.Demo(string)' exists on [Baseline] lib/net6.0/ClassLibrary1.dll but not on lib/net6.0/ClassLibrary1.dll

按照消息提示的那樣,我們可以修改成如下代碼進行修復:

public class Class1
{
    public static void Demo(string param1)
    {
        Demo(param1,"");
    }
    public static void Demo(string param1, string param2)
    {
        Console.WriteLine("Demo 1.1.0: {param1} {param2}");
    }
}

到此,關于“.NET 6的Nuget包驗證怎么用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

阳曲县| 威宁| 霍邱县| 蒲城县| 西城区| 和林格尔县| 沾益县| 陆川县| 明光市| 淄博市| 南陵县| 平罗县| 登封市| 白山市| 林周县| 普兰店市| 蕲春县| 闻喜县| 怀宁县| 罗定市| 扬州市| 延津县| 特克斯县| 武川县| 河津市| 长丰县| 新密市| 阿拉善左旗| 荃湾区| 沙田区| 密山市| 绥芬河市| 大同市| 宁晋县| 台安县| 壤塘县| 海原县| 天长市| 宕昌县| 保德县| 息烽县|