无法升级VS2015的nuget

时间:2017-08-07 19:03:19

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

我正在安装一个大型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.

我掏出“Process explorer”,发现两个进程使用了​​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下的packages文件夹,没有帮助。

我用Google搜索并发现了link,但它也没有帮助解决问题。我承认我在我的智慧结束。

1 个答案:

答案 0 :(得分:0)

  

无法升级VS2015的nuget

此问题应该是核心Visual Studio可扩展性中的错误或问题。这不是NuGet的具体问题。它通常与反病毒或加密服务等相关联。我想在这里提供一些疑难解答:

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

    这是一个注册表摘要,告诉McAfee Endpoint Encryption排除这些文件。完成后,重启PC:[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不会安装在每个用户的文件夹中;相反,你会在程序文件中看到它。类似于: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文件夹

希望这可以给你一些帮助。