簡體   English   中英

nuget包管理器不同步

[英]nuget package manager out of sync

我在Nuget 2.5.4。 用於安裝更新的“管理整個解決方案的軟件包”功能會間歇性地顯示“誤報”。

誤報是指解決方案中的某些內容需要更新,但解決方案中的每個項目都已進行最新更新。 至少我認為這是正在發生的事情。

例如(見下文),nuget提供幫助安裝NUnit,但每個包都是灰色的。 測試項目應該是灰色的,因為它們已經是最新版本。

沒有NUnit的軟件包也會變灰,我認為它們不應該是,所以解決方案管理員可以安裝它們。 所以不確定我的誤報理論是否正確,但有些事情是不同步的。

修復是什么?

干杯,

在此輸入圖像描述

在此輸入圖像描述

Process Monitor的輸出看來,解決方案范圍的更新似乎是根據解決方案根目錄下的Packages文件夾的內容確定的:

它掃描文件夾並檢查已經下載的所有軟件包的更新,並且它將顯示舊軟件包的更新,即使新軟件包也在那里。

因此,為了同步它,您應該清除此文件夾,然后還原解決方案的包。 之后,下次打開此對話框時,它將顯示正確的結果。

直接轉到解決方案的包物理目錄,例如C:\\ projects \\\\ packages。

確保誤報在此目錄中沒有舊版本以及當前版本。

我的源代碼控制有時會鎖定配置文件,以致我的web.configpackages.config有時在NuGet更新后不同步。

通常顯示構建事件的output窗口將顯示NuGet更新/安裝通常出現的問題。

大多數時候在配置文件上釋放readonly然后進行另一次更新將修復配置文件。 如果這不起作用,我必須刪除並重新安裝一些軟件包。

編輯:根據您的項目類型,您可能沒有web.config,並且並非所有包都寫入應用程序配置設置。

很久以后,但提到以防其他人出現。 運行NuGet 2.8.x,我遇到了與包管理器GUI相同的問題(轉到控制台進行更新,並說明最新的每個包)。

為了解決這個問題,我清理了我的項目包目錄(當然除了repositories.config文件),這反過來表明存在一個NuGet版本沖突:在我的解決方案的根目錄中,.nuget目錄包含一個過時的NuGet.exe。 我刪除了.nuget目錄,重建了,現在我們又好了(所有下載的軟件包和包管理器中只顯示包含更新的軟件包)。

我的解決方案是關閉Visual Studio並刪除/packages文件夾中的所有內容。 您還可以刪除NuGet更新列表中列出的誤報的/packages中的所有子文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM