46

我无法更新或卸载 Visual Studio 2012 的 NuGet 包管理器。我查看了多种解决方案,但没有找到一个可行的。

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

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

在此处输入图像描述

2013 年 2 月 5 日上午 10:38:09 - 开始安装 Microsoft Visual Studio Ultimate 2012 的扩展... 2013 年 2 月 5 日上午 10:38:09 - 将“NuGet 包管理器”版本 2.0.30625.9003 升级到版本2.2.31210.9045。2013 年 2 月 5 日上午 10:38:10 - 安装错误:System.IO.IOException:该进程无法访问该文件,因为它正被另一个进程使用。在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 在 System.IO.__Error.WinIOError() 在 System.IO.File.InternalMove(String sourceFileName, String destFileName, Boolean checkHost) 在 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, IEnumerable1 uninstalledExtensions, IEnumerable1 packComponentChanges) 在 Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.BeginInstall(IInstallableExtension installableExtension, Boolean perMachine, AsyncOperation asyncOp) 在 Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.InstallWorker(IInstallableExtension extension, Boolean perMachine, AsyncOperation asyncOp)

随后弹出一个告诉我:

该进程无法访问该文件,因为它正被另一个进程使用。

在此处输入图像描述

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

我为使其正常工作而采取的步骤:

  1. 我已经多次重新启动 VS2012,加载和不加载项目。
  2. 我已经重新启动了几次计算机,除了 VS2012 之外什么都没有启动。
  3. 我已经从网上下载了 NuGet 安装程序,并尝试在不启动 VS2012 的情况下安装它(重启后的第一件事)。

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

无论我尝试什么,我都无法获得最新版本!有人有其他技巧吗?

我还注意到 NuGet 现在根本无法正常工作。“包管理器控制台”或“包管理器设置”都不做任何事情。

4

4 回答 4

82

资源:

这对我有帮助:

  1. 关闭 Visual Studio 的所有实例。
  2. 转到您的全局 Visual Studio 扩展文件夹。NuGet 不会安装在您的每个用户文件夹中;相反,您会在 Program Files 中看到它。类似于: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 扩展移动到新的扩展文件夹中。
  9. 现在打开 Visual Studio。您应该会看到新版本的 NuGet 已安装并正常工作。
  10. 确认一切正常后,您可以删除重命名的 Extensions 文件夹。
  11. 下载 VSIX 并右键单击取消阻止文件并再次安装
于 2013-10-18T09:21:07.197 回答
7

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

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

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

于 2013-07-05T04:43:25.573 回答
1

我安装了 VS 2013 Pro。为我解决这个问题的方法是重新启动到安全模式并在那里重新安装 NuGet。

您可能还想在下面的链接中查看 Adam D 的帖子(插件被反恶意软件阻止):

VS2012 无法更新或卸载 NuGet 包管理器

于 2015-03-06T06:13:34.877 回答
0

我在https://kc.mcafee.com/corporate/index?page=content&id=KB85636&snspd-1015&locale=en_GB&viewlocale=en_GB找到了解决此问题的方法

原因:

Microsoft Visual Studio (VS) 进程 devenv.exe 必须在 EEFF/FRP 进程排除注册表项中排除。

解决方案: 遇到此问题的用户必须联系英特尔安全技术支持并引用此文章编​​号,以获得将 devenv.exe 进程添加到正确的 EEFF/FRP 进程排除注册表项的帮助。

于 2016-08-25T21:13:50.257 回答