簡體   English   中英

如何強制包管理器更新具有相同版本的Nuget包?

[英]How to force the Package Manager to Update a Nuget package with the same version?

即使版本號未更改,如何啟用更新?

我正在開發一個Nuget包。 我們處於早期階段,測試/測試。 我們不會在測試完成之前更改版本,但我們希望傳遞更改的包以進行測試。 但是包管理器看不到更改,允許更新,除非版本已更改,我可以重新安裝,但我更希望測試人員能夠更新。

如何在版本號保持不變的情況下完成此操作?

恢復這一點,因為我們在同一條船上(將單片解決方案轉換為Nuget-ified微服務架構)。 這種方法有效,但有點單調乏味:

轉到NuGet選項並單擊“清除所有NuGet緩存”對解決方案執行Nuget包還原。 如果由於(例如,Newtonsoft.json'正在被另一個進程使用'而失敗),請關閉所有MSBuild.exe + VBCSCompiler.exe實例上的所有Visual Studio實例並結束任務。 重新啟動VS,它應該工作。

請注意,刪除和重新添加程序包將無法正常工作,因為它仍將使用舊的緩存版本。

我剛遇到同樣的問題,我的搜索把我帶到了這里。

通常我們使用AssemblyInformationalVersion字段來指定預發布后綴,例如:

  • 0.9.5-beta00001
  • 0.9.5-beta00002
  • ...

在NuGet包管理器中啟用預發布版本時,也會提供這些包。 只要后綴表達式“增加”,包管理器就會將后續預發布版本視為更新。 因此,重要的是從一個經過深思熟慮的后綴開始,例如以下內容將不起作用: beta9 > beta10beta9被處理得更高,因為第五個字符更高)。

刪除后綴后,包將被視為發行版,並作為更新提供給同一版本的所有預發布包。

但隨着生活與我們一起賭博,有時我們會發現一個小錯誤或剛剛發布的庫中的改進。 如果剛剛發布的庫甚至沒有在任何地方使用過,那么再次為這樣的微變量增加版本號總是很煩人,因為它只在幾分鍾之前發布。

對於這種情況,我嘗試了Simon Storr概述的程序,但這還不夠。 我在解決方案的packages目錄中遇到了舊版本。 從那里手動刪除后,它從某處獲取當前包。 我不確定它是在此步驟下載了當前包,還是從位於解決方案父目錄中的更全局包目錄中獲取。

請注意,有多個包目錄! 項目的Visual Studio參考視圖中的NuGet包的屬性僅顯示全局包目錄。 但是已經有新版本(用ILSpy檢查過),而舊版本仍然被復制到bin目錄。

暫無
暫無

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

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