我正在安装一个大型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,但它也没有帮助解决问题。我承认我在我的智慧结束。
答案 0 :(得分:0)
无法升级VS2015的nuget
此问题应该是核心Visual Studio可扩展性中的错误或问题。这不是NuGet的具体问题。它通常与反病毒或加密服务等相关联。我想在这里提供一些疑难解答:
检查您的计算机是否安装了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上查看the answer for the same issue。
关闭visual studio并删除C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions
中包含Nuget副本的所有文件夹
关闭所有Visual Studio实例。
转到全局Visual Studio扩展文件夹。 NuGet不会安装在每个用户的文件夹中;相反,你会在程序文件中看到它。类似于:C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions
查看该文件夹。您将看到许多随机命名的文件夹,如“sdjfksiov.djd”等。大多数(如果不是全部)是NuGet。您需要知道哪些是NuGet,哪些不是,特别是如果您安装了其他扩展。 (你可以判断它是否是NuGet,因为它里面会有一堆NuGet。*。dll文件。如果你没有看到NuGet的东西,你会想保留它。)
将Extensions文件夹重命名为:C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions_RENAMED
直接从Visual Studio扩展库下载NuGet。
执行刚刚下载的下载的NuGet.Tools.vsix文件。不要通过Visual Studio来完成。只需双击.vsix文件即可安装。
NuGet应该成功安装。作为该安装的一部分,它将再次创建Extensions文件夹,因此您将再次看到C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions
打开重命名的扩展文件夹,将所有非NuGet扩展名移动到新的扩展程序文件夹中。
现在打开Visual Studio。您应该看到新版本的NuGet已安装并正常运行。
验证一切正常后,您可以删除重命名的Extensions文件夹
希望这可以给你一些帮助。