0

我正在安装一个大型 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 (x86) 下的 nuget.tools \NuGet\Visual Studio 2015,然后我再次启动 VS 仍然得到相同的消息

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

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

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

4

1 回答 1

0

未能为 VS2015 升级 nuget

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

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

    这是一个注册表片段,用于告诉 McAfee Endpoint Encryption 排除这些文件。完成后,重新启动 PC:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MfeEEFF\ExemptedProcesses] "1"="devenv.exe" "2"="VSIXInstaller.exe"

    有关详细信息,请在 SO 上查看相同问题的答案。

  • 关闭 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-08-08T07:30:31.367 回答