您好,登錄后才能下訂單哦!
這篇文章主要介紹“.NET 6的Nuget包驗證怎么用”,在日常操作中,相信很多人在.NET 6的Nuget包驗證怎么用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”.NET 6的Nuget包驗證怎么用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
使用方式也非常簡單,只需修改項目文件,加上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版本的其他類庫。那么運行時很可能收到如下異常:
現在讓我們加上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包驗證怎么用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。