2013-02-05 37 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