這次經驗挺特別的,在一次協助開發功能的過程中,原本要透過 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
沒有留言:
張貼留言