NuGet Package Explorer 有兩種?

前言

為什麼會有這一篇文章?如果您像我一樣,客製化 NuGet Packages 檔案的機率非常高的話,您應該會發現,原本透過 ClickOne 更新的 NuGet Package Explorer 的安裝來源已經不能使用了,如果您直接執行 .application 應該會得到一個錯誤訊息,所以其實也不是 NuGet Package Explorer 有兩種,這是因為原有的發行方式也跟著 codeplex 網站的關閉後不維護了。


NuGet Packages 的功能新增

從 2016 年 8 月 開始,在 .nuspec 檔案的 <metadata> 標籤裡,新增了 <repository> 標籤,這個標籤有兩個屬性,一個是 type 另一個是 url,他可以在這個 NuGet Package 裡描述本身的原始檔版本控制來源的位置,而且,如果您使用的是先前透過 ClickOnce 安裝的進來的 NuGet Package Explorer 的話,那麼版本應該停留在 v3.21.0.0

而且,大約從 .NET Core 1.6/2.0 開始,微軟開始建議您使用 dotnet CLI 來建立 NuGet Package 而不要再使用 NuGet.exe 來建立了。

比如上面包含 <repository> 標籤的 NuGet Package ,如果您使用 v3.21.0.0 版本的 NuGet Package Explorer 來開啟的話,會立即的爆出未宣告 commit 屬性的錯誤訊息。

其實就是因為 commit 這個屬性在這個版本的 NuGet Package Explorer 是不認得的。

這個 commit 的內容,其實就是對到在 Github 上 Committed 進去的那一個變更的 hash

但其實,即便使用 v3.21.0.0 版開啟出現錯誤後,是後你還是可以編輯它,但如果你使用最新版本的 NuGet Package Explorer 就不會有這個訊息出現了,最新版本的 NuGet Package Explorer 微軟早已建議從市集下載,市集?!對!您沒聽醋,就是 Windows 市集!您現在只需要在市集直接搜尋 nuget 字串,就可以直接找到安裝包。

使用者個版本開啟,就不再會出現 Commit 屬性未宣告的錯誤訊息了。

最新版,目前已經到 v5.0.132 了。


參考資料:

https://blog.nuget.org/20170316/NuGet-now-fully-integrated-into-MSBuild.html

https://docs.microsoft.com/zh-tw/nuget/reference/nuspec

https://github.com/NuGet/NuGetGallery/issues/4941

https://github.com/aspnet/Universe/commit/f04440816ad450ed9919984cd921a8f3b67e1245

留言

這個網誌中的熱門文章

常見的程式碼壞味道(Code Smell or Bad Smell)

什麼是 gRPC ?

什麼是 gRPC(二)- 來撰寫第一個 Hello World 吧!