无法在VS2012中更新或卸载NuGet Package Manager

Evi*_*key 46 visual-studio nuget visual-studio-2012

我无法更新或卸载Visual Studio 2012的NuGet包管理器.我已经查看了几个解决方案,但没有找到一个有效的解决方案.

以管理员身份运行Visual Studio 2012 ...

尝试更新NuGet包管理器失败,并在日志末尾显示以下错误对话框:

在此输入图像描述

2/5/2013 10:38:09 AM - 开始安装Microsoft Visual Studio Ultimate 2012扩展... 2013年2月5日上午10:38:09 - 将'NuGet Package Manager'版本2.0.30625.9003升级到版本2.2.31210.9045.2/5/2013 10:38:10 AM - 安装错误:System.IO.IOException:进程无法访问该文件,因为它正由另一个进程使用.在System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)at System.IO .__ Error.WinIOError()at System.IO.File.InternalMove(String sourceFileName,String destFileName,Boolean checkHost)at Microsoft.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(IEnumerable1个installedExtensions,IEnumerable的1 uninstalledExtensions, IEnumerable1个packComponentChanges)在Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.BeginInstall(IInstallableExtension installableExtension,布尔perMachine,AsyncOperation asyncOp)在Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.InstallWorker(IInstallableExtension延伸,布尔perMachine,AsyncOperation asyncOp)

随后弹出一个告诉我:

进程cannon访问该文件,因为它正由另一个进程使用.

在此输入图像描述

当我首先尝试卸载扩展时(根据某些解决方案),我收到与上面相同的弹出消息,告诉我正在使用该进程!

我试图让这个工作的步骤:

  1. 我已多次重启VS2012,无论是否加载项目.
  2. 我已经多次重新启动计算机并且在VS2012之后没有启动任何其他功能.
  3. 我已经从网上下载了NuGet安装程序并试图在没有启动VS2012的情况下安装它(重启后的第一件事).

对于步骤#3,我收到与尝试在Visual Studio 2012中更新时相同的一系列对话框/错误.

无论我尝试什么,我都无法获得最新版本!有没有人有另一招?

我也注意到NuGet现在显然不能正常工作."软件包管理器控制台"或"软件包管理器设置"都不做任何事情.

nih*_*que 82

资源:

这对我有所帮助:

  1. 关闭Visual Studio的所有实例.
  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的东西,你会想保留它.)
  4. 将Extensions文件夹重命名为:C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\Common7\IDE\Extensions_RENAMED
  5. 直接从Visual Studio扩展库下载NuGet.
  6. 执行刚刚下载的下载的NuGet.Tools.vsix文件.不要通过Visual Studio来完成.只需双击.vsix文件即可安装它.
  7. NuGet应该成功安装.作为该安装的一部分,它将再次创建Extensions文件夹,因此您将再次看到C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\Common7\IDE\Extensions
  8. 打开重命名的扩展文件夹,将所有非NuGet扩展名移动到新的Extensions文件夹中.
  9. 现在打开Visual Studio.您应该看到新版本的NuGet已安装并正常运行.
  10. 验证一切正常后,您可以删除重命名的Extensions文件夹.
  11. 下载VSIX并右键单击取消阻止该文件并再次安装

  • 而不是重命名整个文件,只需检查文件夹中包含nuget dll的文件夹.删除/移出文件夹.这允许我更新Nuget并且没有弄乱任何其他安装的扩展. (8认同)
  • @tillig ...想知道这是否是McAfee标记为潜在病毒的文件夹的非标准命名"sdjfksiov.djd" (5认同)
  • @felickz可能是问题,在我的工作笔记本电脑上我们安装了McAffee (5认同)
  • @felickz我也遇到过这个问题,我也在我的工作计算机上安装了McAfee,而同事(也是McAfee)也遇到了这个问题.上面的步骤对我有用,当NuGet的另一个更新可用时,我不得不再次重复工作以安装它. (3认同)
  • 也适用于Visual Studio 2013,但我只需要重命名Extensions文件夹,然后下载并运行安装.当我完成安装时,它使用单个子文件夹重新创建了Extensions文件夹.我将该子文件夹移动到我重命名的Extensions文件夹中,删除了新的Extensions文件夹,然后将我重命名的Extensions文件夹的名称更改回"Extensions".打开Visual Studio并使用新版本. (2认同)

Roc*_*lan 7

我正在使用VS2010,我最后通过"添加删除程序"卸载NuGet包管理器来修复此问题,然后删除此目录:

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft Corporation\Nuget Package Manager
Run Code Online (Sandbox Code Playgroud)

然后我就可以运行NuGet.Tools.vsix了.