2011-07-06 88 views
15

我試圖通過卸載已安裝的NuGet一些軟件包。根據所描述的here文檔,我應該看到一個卸載按鈕(第一下圖)當我選擇安裝的軟件包。但是,我只看到一個管理按鈕(下面的第二個屏幕截圖)。任何人都可以請告訴我如何卸載軟件包?問題與卸載的NuGet軟件包

NuGet Doc Screenshot

My Screenshot

回答

12

最後,我發現我有手動編輯的.sln解決方案文件,並刪除這些行:

GlobalSection(ExtensibilityGlobals) = postSolution 
     EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35;packages\Unity.Interception.2.1.505.0\lib\NET35;packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Data.5.0.505.0\lib\NET35 
EndGlobalSection 

溶液中的文件中刪除上述行之後,這些包中的NuGet Packages窗口「已安裝的消失包「頁面。只剩下一個包,我現在可以看到「卸載」按鈕。

enter image description here

編輯: 我也不得不刪除我的解決方案目錄中的packages文件夾。

+1

在我的情況下,解決方案文件中沒有引用,但是從打包目錄中刪除包文件夾並沒有訣竅。 –

+1

+1在我的情況下,我在我的解決方案文件中有引用,但刪除軟件包目錄中的包文件夾就足夠了。 – fiberOptics

+0

您可以使用軟件包管理器控制檯執行此操作,正如我在答案中解釋的那樣。你不能完全確定你正在做所有你需要做的事情。使用包管理器控制檯在這方面更安全。 – JotaBe

13

如果您向下滾動到你鏈接到你會看到管理按鈕和解釋的NuGet文檔頁面的Managing Installed Packages部分。

NuGet 1.4中引入了一項新功能,使您可以在解決方案資源管理器中選擇解決方案,並在一個步驟中從多個項目中添加/刪除軟件包。以前,您必須在解決方案資源管理器中選擇每個項目,並逐個從每個項目中添加/刪除軟件包。

如果您單擊管理按鈕選擇項目對話框將顯示在那裏你可以取消選中你想要的NuGet包從要卸載的項目。

enter image description here

如果您選擇項目,而不是在解決方案資源管理解決方案,您可以添加/從選定的項目刪除軟件包。在這種情況下,您只會看到「安裝」和「卸載」按鈕。

+2

,但它不會從我的解決辦法刪除軟件包。這些軟件包仍然顯示在「已安裝的軟件包」頁面下,其旁邊有「管理」按鈕。另外,我的解決方案目錄中有一個「packages」文件夾。你知道如何從「已安裝的軟件包」頁面刪除軟件包嗎?謝謝。 – StarCub

+1

僅當包中未安裝任何項目時才從解決方案中刪除包。因此,如果您不取消檢查所有內容,它仍將安裝在解決方案中。如果您在解決方案級別對話框中查看詳細信息窗格,則可以查看哪個項目具有哪個包。 – davidfowl

0

我有一個問題,刪除代碼第一LIB CTP5是有相關性,卸載不返回任何消息,也沒有刪除任何東西。從packages.config中刪除需要刪除的引用。之後,它不會在nuget中顯示,並且您可以重新安裝或繼續。

8

有時有禁止使用卸載軟件包的依賴關係,但你需要這樣做呢(即,如果您不小心安裝兩個不同版本的軟件包的依賴包)。

發生這種情況時,卸載軟件包的唯一方法是強制卸載,並且只能通過軟件包管理器控制檯進行卸載。

在進入控制檯之前,您應該打開Manage NuGet Packages窗口,並記下您的軟件包的ID和版本,當您單擊該軟件包時,它會出現在右側窗格中。

然後你就可以關閉管理窗口,打開控制檯(包管理器控制檯),並運行此命令:

uninstall-package -Id YourPackageId -Force -Version YourPackageVersion 

注意-Force參數。例如

uninstall-package -Id Unity -Force -Version 3.0.1304.0 

該命令允許當它被安裝在平行於第2版,不能throgh管理窗口中完成卸載版本3。

0

使用VS IDE管理的NuGet後封裝對話框或包管理器控制檯,您可能需要手動刪除的文件系統是包的一部分不在包文件夾的解決方案文件或其他文件。

我正在評估Microsoft.AspNet.FriendlyUrls包,它在我的ASP.NET Web應用程序項目/解決方案中添加了母版頁,用戶控件,類代碼文件和packages.config文件。我犯了錯誤,在使用NuGet Packages對話框刪除軟件包之前手動撤消/從解決方案中刪除這些文件。一切都在這一點上感到困惑。

正如其他人所說,刪除包文件夾是解決辦法。但後來我不得不手動計算出該文件夾以外的其他文件,這些文件也應該被刪除。

2

最近,我有類似的問題。我的項目工作正常,但無法通過NuGet包管理器添加或刪除任何包,因爲EnterpriseLibrary 5.0.505顯示爲從源丟失。但試圖恢復或刪除它失敗,出現「EnterpriseLibrary'包」無法找到版本5.0.505「的錯誤。

我跟蹤這歸因於具有在文件packages.config下列參考:

<package id="EnterpriseLibrary" version="5.0.505" targetFramework="net4" /> 

這與其它解決方案相比,其餘最近我改成添加的包,下面,該固定問題:

<package id="EnterpriseLibrary.Common" version="5.0.505.0" targetFramework="net4" /> 

我從來沒有手動編輯任何package.config文件,所以我不知道錯配是怎麼發生的。也許參考文件因爲包含軟件包而改變了,而沒有更新配置文件...?