2013-02-05 45 views
45

我無法更新或卸載Visual Studio 2012的NuGet程序包管理器。我查看了幾個解決方案,但沒有找到適用的解決方案。無法更新或卸載VS2012中的NuGet程序包

運行Visual Studio 2012 作爲管理員 ...

嘗試更新的NuGet包管理器失敗,我得到這個錯誤對話框,並在日誌的末尾以下內容:

enter image description here

2013年2月5日上午10時38分09秒 - 在開始安裝擴展到Microsoft Visual Studio旗艦2012 ... 2013年2月5日上午10時38分09秒 - 升級「的NuGet包管理器」 ,versio n 2.0.30625.9003至版本2.2.31210.9045。 2/5/2013 10:38:10 AM - 安裝錯誤:System.IO.IOException:進程無法訪問文件,因爲它正在被另一個進程使用。 at System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath) at System.IO .__ Error.WinIOError() at Microsoft.Office.IO.File.InternalMove(String sourceFileName,String destFileName,Boolean checkHost) 。 VisualStudio.ExtensionManager.ExtensionManagerService.AtomicallyDeleteFiles(IEnumerable的1 filePaths, Boolean justMarkForDeletion) at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.DeleteDiscoverableFiles(IInstalledExtension extension) at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.UninstallInternal(IInstalledExtension extension, Boolean forceDelete) at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.CommitInstalledAndUninstalledExtensions(IEnumerable 1 installedExtensions,IEnumerable的1 uninstalledExtensions, IEnumerable 1 packComponentChanges) 在Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.BeginInstall(IInstallableExtension installableExtension,布爾perMachine,AsyncOperation asyncOp) 在Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.InstallWorker (IInstallableExtension擴展,布爾perMachine,AsyncOperation asyncOp)

隨後彈出的告訴我:

過程炮訪問該文件,因爲它正由另一個進程使用。

enter image description here

當我嘗試先卸載擴展(每some solutions)我收到相同的彈出消息如上,告訴我該進程正在使用!

  1. 我重新啓動VS2012多次,並加載無項目:

    步驟我已經在我的努力得到這個工作做。

  2. 我重新啓動了電腦幾次,並沒有開始VS2012。
  3. 我已經從網上下載了NuGet安裝程序,並試圖安裝它無w/o啓動VS2012(重新啓動後的第一件事)。

對於步驟#3,我收到相同的一系列對話框/錯誤的嘗試在Visual Studio中更新2012

我不能獲得最新版本,無論我怎麼努力,當作爲!有沒有人有另一個詭計?

我也注意到,NuGet現在只是簡單的不工作。「包管理器控制檯」或「包管理器設置」都不做任何事情。

+0

當你做了3它又是同樣的錯誤?你有沒有在Windows EventLog中搜索相關的東西? – Anri

+0

我想嘗試以安全模式安裝它。 – Anri

+0

對於#3,我在嘗試更新VS2012內部時出現同樣的錯誤(問題已更新(w /圖片))。 VS2012是最新版本; 「擴展和更新」對話框中沒有「產品更新」。 –

回答

7

我使用VS2010,我結束了由通過「添加或刪除程序」卸載NuGet包管理器解決這個問題,那麼這個目錄中刪除:

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft Corporation\Nuget Package Manager 

然後我可以運行NuGet.Tools .vsix的東西確定。

+0

您的解決方案適用於Visual Studio Premium 2013,但路徑爲C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE,並且幾個隨機命名的NuGet文件夾被刪除。 –

81

來源:

這是幫助我:Visual Studio中的

  1. 關閉所有實例。
  2. 轉到您的全局Visual Studio擴展文件夾。 NuGet不會在您的每個用戶文件夾中安裝 ;相反,您會在程序 文件中看到它。類似於:C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions
  3. 查看該文件夾。你會看到很多隨機命名的文件夾 ,比如「sdjfksiov.djd」等等。大多數(如果不是全部的話)是 NuGet。您需要知道哪些是NuGet,哪些不是,特別是如果您安裝了其他擴展。 (你可以知道它是否是NuGet,因爲它會有一堆 NuGet。* .dll文件在那裏,如果你沒有看到NuGet的東西, ,你會想保留它)。將擴展文件夾重命名爲:C:\ Program Files (x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions_RENAMED
  4. 直接從Visual Studio擴展庫下載NuGet。
  5. 執行您剛剛下載的下載的NuGet.Tools.vsix文件。 不要通過Visual Studio來完成。只需雙擊.vsix文件 即可進行安裝。
  6. NuGet應該成功安裝。作爲該安裝的一部分,它將再次創建擴展文件夾,因此您將再次看到 C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions
  7. 打開您的重命名擴展文件夾並將所有非NuGet 擴展名移動到新的擴展文件夾中。
  8. 現在打開Visual Studio。你應該看到新版本的NuGet 已經安裝並正在運行。
  9. 一旦您驗證了 一切正常,您可以刪除重命名的擴展文件夾。
  10. 下載VSIX並右鍵單擊解鎖文件並重新安裝
+3

這對我來說非常合適 – DeleO

+5

@tillig ...不知道是否是McAfee標記爲潛在病毒的非標準文件夾命名「sdjfksiov.djd」 – felickz

+5

@felickz可能是問題,在我工作的筆記本電腦上McAffee安裝 – nihique