專案問題總結1:Nuget無法安裝程式包dll,提示:此程式包已安裝

連江偉發表於2015-06-06

問題描述:

        我們在做專案的過程中免不了使用Nuget安裝一些其他系統釋出的dll,以完成我們的業務程式碼,但是在使用的過程中遇到一個問題,那就是因某些原因造成引用無效,其表現如下:


        導致這種情況發生的原因很多,我現在要說的是其中 一種,那就是引用的dll被刪除了,我們需要重新在Nuget裡面進行安裝,這時問題來了,當我們查詢到想要的dll時,顯示已經安裝,如下圖所示:

        但是我們在已經安裝的包裡面進行查詢,發現並沒有,如下圖所示

        而且我們在解決方案的專案檔案目錄中也找不到目標dll,腫麼辦?明明沒有,卻說我們已經安裝了,如此“冤枉”我們,不能忍!必須找出來“凶手”!

問題分析:
        Nuget是如何來管理dll的,無非也是通過配置檔案嘛。問題肯定就出在配置檔案上,然後我去找問題所在專案裡的包配置檔案packages.config,這個檔案只要你使用Nuget新增過引用,都會在相應的專案檔案裡自動建立,如下圖:

        開啟這個檔案,我們會看到該專案通過Nuget引用了哪些包(dll檔案),如下圖:
        與我們在Nuget包管理器中所看到的進行對比(如下圖),我們就會發現問題所在

        ITOO.ExamEvalConfigure.ViewModel這個dll沒安裝,但是在packages.config檔案裡有它的配置資訊,這就導致了我們在Nuget中查詢dl包時,老是顯示已安裝,無法重新安裝的的問題。

解決辦法:
        將packages.config檔案中已經失效的配置資訊刪除,重新生成,即可在Nuget中重新安裝,如下圖所示
小結:
        在除錯程式碼或者解決問題的時候,我們用的最多的就是嘗試法,或者是窮舉法去解決問題,想到什麼地方就立刻去試,這對於我們這群沒什麼經驗的菜鳥來講是無可厚非的,但是我們也要嘗試經過推理分析,之後鎖定問題根源,一擊必殺!能達到如此境界,需要我們的經驗,也需要我們懂得更多才可以,這就是我們每個人努力的方向。

相關文章