2015-02-07 64 views
2

我試圖弄清楚a)如果我以正確的方式解決這個問題並且b)如何更新解決方案級別的nuget包。在visual studio中更新解決方案級nuget包

核心問題是,如果軟件包安裝在解決方案級別(而不是任何特定項目),並且您嘗試更新它,則不會刪除舊的參考。它只是添加一個新的軟件包引用,並導入這兩個版本。這通常意味着(Powerhell模塊如何工作)早期的PowerShell模塊覆蓋較新的PowerShell模塊。

所以我要做的是卸載軟件包並重新安裝它,這會抓住新版本。似乎效率低下。

此外,我似乎無法安裝或從控制檯卸載解決方案級包。我必須用Manage Nuget Packages實用程序來完成它,我討厭使用它。

下面是我在做什麼的背景,如果它可以幫助:

我已經建立了一個系統,我們公司採用的解決方案級別的NuGet包來定製PowerShell腳本模塊添加到解決方案中,如以及我編寫的一些更通用的腳本解決方案(如刪除TFS工作項目或更改文件系統以及代碼中的項目名稱)。

所以一個項目可能有DataServiceUtilities包,另一個項目可能有FrontEndUtilities包。

那麼,如何在不添加兩個引用的情況下更新這些包?解決方案級別的操作是否可以在軟件包管理器控制檯中完成,該控制檯始終默認爲定位項目?

回答

3

看來,一些這來自於軟件包管理器GUI工具的錯誤,並在的NuGet一般

軟件包管理器GUI工具不能正確處理的解決方案級別包的更新。但是,如果您從軟件包管理器控制檯運行Update-Package,它會正確卸載/重新安裝解決方案級軟件包。

至於從命令行安裝,如果一個軟件包只有一個工具文件夾並且沒有依賴關係,那麼你可以從命令行運行安裝,並將其安裝在解決方案中並忽略默認項目。但是,截至目前(Nuget 2.8),Nuget在其中存在一個錯誤,導致它將對其他解決方案級別包的依賴關係解決方案級包視爲項目級包。它顯然已經進入了大約一年,他們聲稱它將在VS 2015中得到修復。您可以在這裏看到這個bug:https://nuget.codeplex.com/workitem/3642

這意味着您目前無法使用任何依賴項創建解決方案級包。請注意,根據文檔,這是合法的。希望明年能夠修好。

*更新

只是一個快速更新。看起來,在VS 2015中,他們已經棄用(或更準確地說,刪除了)解決方案級別/僅工具包。在經過一番譴責之後,他們還決定在未來的版本中重新實施它們,但可能需要一段時間才能實現。

上重新實現該功能的進展可以在這裏找到:https://github.com/NuGet/Home/issues/1521

如何解決缺少的功能討論可以在這裏找到:https://github.com/NuGet/Home/issues/522

相關問題