【问题标题】:failed to upgrade nuget for VS2015未能为 VS2015 升级 nuget
【发布时间】:2018-01-15 04:19:06
【问题描述】:

我正在安装一个大型 C# 项目,有人告诉我先将 nuget 从 3.3 升级到 3.4 或更高版本。

我下载了 nuget 扩展(VS 2015 VSIX v3.4.4)并尝试安装它,我得到了这个:

8/7/2017 2:04:32 PM - Upgrading 'NuGet Package Manager for Visual Studio 2015', version 3.3.0.167 to version 3.4.4.1321.
8/7/2017 2:04:41 PM - Install Error : System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

我尝试了另一种方法-从VS2015中,工具->扩展和更新,找到现有的nuget并尝试先将其卸载,我得到了:

The process cannot access the file because it is being used by another process.

我打开“进程资源管理器”,发现有两个进程使用了​​ nuget:chrome 和 devenv.exe。 devenv 是一个带有 VS2015 实例的进程。无论如何我退出了VS2015,甚至chrome,没有帮助,与安装扩展时的错误消息相同。

我尝试过的其他事情:

我发现正在使用的 nuget 位于“C:\Program Files (x86)\NuGet”,我将现有的替换为新版本的 nuget.exe,以及 C:\Program Files 下的 nuget.tools (x86)\NuGet\Visual Studio 2015,然后我再次启动 VS 仍然得到相同的消息

The process cannot access the file because it is being used by another process.

我删除了项目下的packages文件夹以及/.nuget下的文件夹,没有帮助。

我用谷歌搜索并找到了这个link,但它也无助于解决问题。我承认我已经无计可施了。

【问题讨论】:

  • 您是否启用了磁盘加密?
  • 这是办公室电脑,我不这么认为但不确定,我怎么知道?
  • 询问您的基础架构人员。
  • @J.E.Y,这个问题呢?请告诉我有关此问题的最新信息吗?
  • @Leo-MSFT,非常感谢您的详细解释和指导和跟进。抱歉,我还没有机会检查它们,今天会做,让你知道。 BTW,你和微软有关系吗?

标签: c# visual-studio-2015 nuget process-explorer


【解决方案1】:

未能为 VS2015 升级 nuget

此问题应该是核心 Visual Studio 可扩展性中的错误或问题。这不是 NuGet 特定的问题。它通常与防病毒或加密服务等相关。我想在这里提供一些故障排除:

  • 以管理员身份登录您的计算机并以管理员身份启动 Visual Studio。
  • 检查您的计算机是否安装了McAfee Endpoint Encryption full-disk encryption product,而不是防病毒软件。如果是,则应将devenv.exeVSIXInstaller.exe 从全盘加密中排除。

    这是一个注册表 sn-p,用于告诉 McAfee Endpoint Encryption 排除这些文件。一旦你这样做了,重启电脑:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MfeEEFF\ExemptedProcesses] "1"="devenv.exe" "2"="VSIXInstaller.exe"

    详情请查看SO上的the answer for the same issue

  • 关闭visual studio并删除C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions中所有包含Nuget副本的文件夹

    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 文件夹

希望能给你一些帮助。

【讨论】:

    猜你喜欢
    • 2017-07-22
    • 2011-09-23
    • 2020-04-17
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多