[英]NuGet Package version not matching reference version
訣竅是你要比較不同的東西。
Nuget會顯示包含其包版本號的可用包。 這是包所有者在nuget spec文件的包version
字段中聲明的內容 。 在nuget完成將這些外部文件提取到項目之后,此版本沒有任何意義或影響。 它與包裝中的確切含義沒有任何直接關系。
另一方面,引用屬性查看dll,而不關心它來自哪個包。 顯示的版本是在編譯期間使用代碼中的AssemblyVersionAttribute
屬性嵌入DLL中的版本號 。 這是在運行時期間實際用於查找和加載引用邏輯的版本。
通常,如果包版本和dll版本匹配會有意義,但沒有硬性規則來強制執行此操作。 它會變得棘手,即使它確實如此,因為一個包可能包含許多dll和其他文件,每個文件版本不同。
關於這個具體案例,我沒有任何信息,為什么業主已經做出了這種差異,也沒有根據他們的版本邏輯。 如果沒有記錄,那么您可以向他們發送消息並詢問其含義。
好處是,除了一點混亂之外,如果dll做了你期望它做的事情並通過質量保證,那么包中的版本號差異在實踐中無關緊要。
編輯:請注意,只有第3個數字的版本號差異對於使用語義版本控制實踐的庫來說很常見,其中第三個組件凹凸表示不間斷的錯誤修復版本。 保持相同的AssemblyVersion
(例如:Newtonsoft.Json的“8.0.0”)允許就地升級,而無需重新編譯引用具有相同major-minor(8.0.0,8.0.1,8.0.2)的先前版本的所有程序集。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.