[英]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
字段來指定預發布后綴,例如:
在NuGet包管理器中啟用預發布版本時,也會提供這些包。 只要后綴表達式“增加”,包管理器就會將后續預發布版本視為更新。 因此,重要的是從一個經過深思熟慮的后綴開始,例如以下內容將不起作用: beta9
> beta10
( beta9
被處理得更高,因為第五個字符更高)。
刪除后綴后,包將被視為發行版,並作為更新提供給同一版本的所有預發布包。
但隨着生活與我們一起賭博,有時我們會發現一個小錯誤或剛剛發布的庫中的改進。 如果剛剛發布的庫甚至沒有在任何地方使用過,那么再次為這樣的微變量增加版本號總是很煩人,因為它只在幾分鍾之前發布。
對於這種情況,我嘗試了Simon Storr概述的程序,但這還不夠。 我在解決方案的packages目錄中遇到了舊版本。 從那里手動刪除后,它從某處獲取當前包。 我不確定它是在此步驟下載了當前包,還是從位於解決方案父目錄中的更全局包目錄中獲取。
請注意,有多個包目錄! 項目的Visual Studio參考視圖中的NuGet包的屬性僅顯示全局包目錄。 但是已經有新版本(用ILSpy檢查過),而舊版本仍然被復制到bin目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.