2013-05-28 92 views
20

我在Nuget 2.5.4上。 「管理整個解決方案包」功能安裝更新會間歇性地顯示「誤報」。nuget包管理器不同步

由於誤報,我的意思是指示解決方案中的某些內容需要更新,但解決方案中的每個項目都已在最新更新中。至少我認爲這是怎麼回事。

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

雖然沒有NUnit的軟件包也是灰色的,但我認爲它們不應該是這樣,因此解決方案管理器可以安裝它們。所以不知道我的假陽性理論是否正確,但某事不同步。

什麼是修復?

乾杯,

enter image description here

enter image description here

+0

我的源代碼管理有時會鎖定配置文件,使得我的'web.config'和'packages.config'有時在NuGet更新後不同步。 – Jasen

+0

@Jasen。發生這種情況時如何重新同步? – Berryl

+0

通常顯示構建事件的'output'窗口將顯示NuGet更新/安裝通常出錯的地方。大部分時間在配置文件上釋放readonly,然後進行另一次更新將修復配置文件。否則,我必須刪除並重新安裝一些軟件包。 – Jasen

回答

1

我的源代碼控制有時鎖定了配置文件,這樣,我的web.configpackages.config有時不同步的的NuGet更新後。

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

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

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

+0

嗯,我沒有看到一個web.config。我確實在Nuget文件夾中包含了Nurse.targets和exe文件中的packages.config文件。不知道我只是通過只讀的方式知道你的意思。我在這裏使用svn。 – Berryl

+0

我嘗試在一個項目上移除並重新安裝NUnit,我可以在解決方案級別執行此操作。它並沒有清理更新情況。 – Berryl

+0

web.config和packages.config位於每個項目節點下。 – Jasen

19

Process Monitor輸出似乎溶液寬更新是基於Packages文件夾是溶液的根目錄下的內容決定:

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

所以爲了同步這個,你應該清除這個文件夾,然後恢復你的解決方案的包。之後,下次打開此對話框時,它將顯示正確的結果。

12

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

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

0

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

爲了解決這個問題,我清理了我的項目軟件包目錄(當然除了repositories.config文件),這反過來表明存在NuGet版本衝突:在我的解決方案的根目錄中,.nuget目錄包含過期NuGet.exe。我刪除了.nuget目錄,重新構建,現在我們又一次很好了(所有下載的軟件包以及僅包含更新的軟件包管理器軟件包)。

0

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