2024年6月18日 星期二

還原NuGet 套件出現錯誤 - 檔案不是有效的 nupkg

這次經驗挺特別的,在一次協助開發功能的過程中,原本要透過 nuget 安裝某個套件,而由於nuget 

機制會先觸發原先該方案下的所有專案的套件,但此時卻出現了 nupkg 不是有效檔案的錯誤,解決

過程中其實就是留心那一點可能性,記錄下...



由於 nuget 機制,安裝新的套件時會確認還原方案下所有專案的套件,此時出現錯誤,如下方所示


然而,使用該套件的專案跟我這次預計要安裝新套件的專案不是同一個,而這發生問題的專案其實在線

上運作一陣子了,專案本身應該沒有問題,只是此時發生錯誤了,請同事建置相同專案結果正常,看來

出問題的是我的本機。查了一下網路,測試幾個狀況後確認是 nuget 的 cache 機制。


由於 nuget 在還原或安裝套件時其實都會先取用本機已存在的cache ,若本機的檔案有問題,即時正常

安裝到專案上後,後續還原可能也會出問題。


要解決這個問題可以幾個方式來達到效果


一種就是在 cache 目錄中手動刪除出問題的套件

nuget cache 目錄在 :C:\Users\username\.nuget\package




刪除該套件之後,再手動觸發還原nuget 套件,或是安裝新套件都會重新觸發,其中還原套件

需要在方案上滑鼠右鍵



或是透過指令的方式還原


以下指令是還原全部套件

update-package -reinstall


或是針對單一套件

update-package -Id <package_name> -reinstall



除了透過手動刪除套件,另一種就是透過工具刪除 cache(注意這邊會全數套件都會刪除)

在 Visual Studio 中,工具 → 選項 → NuGet 套件管理員 → 一般 → 清除所有 NuGet 儲存體


清除套件後,再如同前次介紹的手動還原套件即可,此次茶包舒服



參考

  • https://cloud.tencent.com/developer/ask/sof/108740019

沒有留言:

張貼留言