[英]nuget package manager out of sync
我在Nuget 2.5.4。 用於安裝更新的“管理整個解決方案的軟件包”功能會間歇性地顯示“誤報”。
誤報是指解決方案中的某些內容需要更新,但解決方案中的每個項目都已進行最新更新。 至少我認為這是正在發生的事情。
例如(見下文),nuget提供幫助安裝NUnit,但每個包都是灰色的。 測試項目應該是灰色的,因為它們已經是最新版本。
沒有NUnit的軟件包也會變灰,我認為它們不應該是,所以解決方案管理員可以安裝它們。 所以不確定我的誤報理論是否正確,但有些事情是不同步的。
修復是什么?
干杯,
從Process Monitor
的輸出看來,解決方案范圍的更新似乎是根據解決方案根目錄下的Packages
文件夾的內容確定的:
它掃描文件夾並檢查已經下載的所有軟件包的更新,並且它將顯示舊軟件包的更新,即使新軟件包也在那里。
因此,為了同步它,您應該清除此文件夾,然后還原解決方案的包。 之后,下次打開此對話框時,它將顯示正確的結果。
直接轉到解決方案的包物理目錄,例如C:\\ projects \\\\ packages。
確保誤報在此目錄中沒有舊版本以及當前版本。
我的源代碼控制有時會鎖定配置文件,以致我的web.config
和packages.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.