NuGet不断崩溃Visual Studio 2013

时间:2015-06-09 22:40:15

标签: asp.net asp.net-mvc visual-studio-2013 nuget

我正在尝试更新我的Mvc Web项目中的NuGet依赖项。我要去我的项目,右键单击它,然后去管理NuGet包。弹出NuGet包管理器,然后单击“更新”,我要更新的特定包是“Microsoft ASP.NET Web Pages”和“jQuery”。如果我单击其中任何一个,然后单击更新按钮,弹出更新窗口,然后几乎立即崩溃。然后Visual Studio将重新启动,当我打开我的项目时,没有任何更新。该错误与尝试写入受保护的内存有关。

有没有人对可能导致这种情况的原因有任何建议?我在Windows 7上运行Visual Studio 2013 Update 4.

更新

作为这个问题的后续内容,我只是想补充一些细节。我使用/log flag运行Visual Studio,希望获得更多信息。以下是文件中最后一些条目的转储:

<entry>
  <record>749</record>
  <time>2015/06/10 15:24:27.421</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Entering function CVsPackageInfo::HrInstantiatePackage</description>
  <guid>{77A5A151-6A9B-4D08-BC38-340AB29566E2}</guid>
</entry>
<entry>
  <record>750</record>
  <time>2015/06/10 15:24:27.421</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Begin package load [CctSharedPackage]</description>
  <guid>{77A5A151-6A9B-4D08-BC38-340AB29566E2}</guid>
</entry>
<entry>
  <record>751</record>
  <time>2015/06/10 15:24:27.514</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>End package load [CctSharedPackage]</description>
  <guid>{77A5A151-6A9B-4D08-BC38-340AB29566E2}</guid>
</entry>
<entry>
  <record>752</record>
  <time>2015/06/10 15:24:29.748</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Entering function CVsPackageInfo::HrInstantiatePackage</description>
  <guid>{BC9CA0B3-BB4F-449A-967C-29A8FAE32086}</guid>
</entry>
<entry>
  <record>753</record>
  <time>2015/06/10 15:24:29.748</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Begin package load [Microsoft VSDesigner WCF Package]</description>
  <guid>{BC9CA0B3-BB4F-449A-967C-29A8FAE32086}</guid>
</entry>
<entry>
  <record>754</record>
  <time>2015/06/10 15:24:29.763</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>End package load [Microsoft VSDesigner WCF Package]</description>
  <guid>{BC9CA0B3-BB4F-449A-967C-29A8FAE32086}</guid>
</entry>
<entry>
  <record>755</record>
  <time>2015/06/10 15:24:30.653</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Entering function VBDispatch::GetTypeLib</description>
</entry>
<entry>
  <record>756</record>
  <time>2015/06/10 15:24:30.653</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Leaving function VBDispatch::GetTypeLib</description>
  <guid>{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}</guid>
</entry>
<entry>
  <record>757</record>
  <time>2015/06/10 15:24:30.653</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Entering function VBDispatch::GetTypeLib</description>
</entry>
<entry>
  <record>758</record>
  <time>2015/06/10 15:24:30.653</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Leaving function VBDispatch::GetTypeLib</description>
  <guid>{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}</guid>
</entry>
<entry>
  <record>759</record>
  <time>2015/06/10 15:24:32.621</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Entering function CVsPackageInfo::HrInstantiatePackage</description>
  <guid>{5FCC8577-4FEB-4D04-AD72-D6C629B083CC}</guid>
</entry>
<entry>
  <record>760</record>
  <time>2015/06/10 15:24:32.621</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Begin package load [NuGetPackage]</description>
  <guid>{5FCC8577-4FEB-4D04-AD72-D6C629B083CC}</guid>
</entry>
<entry>
  <record>761</record>
  <time>2015/06/10 15:24:32.637</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>End package load [NuGetPackage]</description>
  <guid>{5FCC8577-4FEB-4D04-AD72-D6C629B083CC}</guid>
</entry>

对我来说,似乎没有什么不寻常或不合适的地方。我查看了日志文件中提供的guid:

{5FCC8577-4FEB-4D04-AD72-D6C629B083CC} - NuGetConsole.Implementation.PowerConsoleToolWindow
{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2} - SSMS DTE 12.0

此外,我原本以为这是一个特定的项目。显然即使我去创建一个新项目,当我尝试更新它时也会发生同样的事情。

在发生这一切之前,我做的最后一件事是安装Windows更新。我记得其中一个更新是Sql Server 2014 Update 1.我使用的是Management Studio 2014,但我想不出NuGet和Management Studio之间的任何关系。

所以希望这些信息可以帮助我或帮助其他人解决这个问题!任何想法的家伙?

更新2

我在此处粘贴我的异常,从事件查看器中检索:

Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException
Stack:
   at EnvDTE.ProjectItem.get_Kind()
   at NuGet.VisualStudio.ProjectExtensions+<>c__DisplayClassb.<GetChildItems>b__a(EnvDTE.ProjectItem)
   at System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
   at System.Linq.Enumerable.Any[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>)
   at NuGet.ProjectSystemExtensions.DeleteFiles(NuGet.IProjectSystem, System.Collections.Generic.IEnumerable`1<NuGet.IPackageFile>, System.Collections.Generic.IEnumerable`1<NuGet.IPackage>, System.Collections.Generic.IDictionary`2<NuGet.FileTransformExtensions,NuGet.IPackageFileTransformer>)
   at NuGet.ProjectManager.RemovePackageReferenceFromProject(NuGet.IPackage)
   at NuGet.ProjectManager.Execute(NuGet.PackageOperation)
   at NuGet.ProjectManager.Execute(NuGet.IPackage, NuGet.IPackageOperationResolver)
   at NuGet.ProjectManager.AddPackageReference(NuGet.IPackage, Boolean, Boolean)
   at NuGet.ProjectManager.UpdatePackageReference(NuGet.IPackage, Boolean, Boolean)
   at NuGet.VisualStudio.VsPackageManager+<>c__DisplayClass5a.<UpdatePackageReference>b__58()
   at NuGet.VisualStudio.VsPackageManager.RunProjectAction(NuGet.IProjectManager, System.Action)
   at NuGet.VisualStudio.VsPackageManager.UpdatePackageReference(NuGet.IProjectManager, NuGet.IPackage, Boolean, Boolean)
   at NuGet.VisualStudio.VsPackageManager+<>c__DisplayClass1a.<UpdatePackages>b__18()
   at NuGet.VisualStudio.VsPackageManager+<>c__DisplayClass67.<ExecuteOperationsWithPackage>b__65()
   at NuGet.VisualStudio.VsPackageManager.RunSolutionAction(System.Action)
   at NuGet.VisualStudio.VsPackageManager.ExecuteOperationsWithPackage(NuGet.IProjectManager, NuGet.IPackage, System.Collections.Generic.IEnumerable`1<NuGet.PackageOperation>, System.Action, NuGet.ILogger)
   at NuGet.VisualStudio.VsPackageManager.UpdatePackages(NuGet.IProjectManager, System.Collections.Generic.IEnumerable`1<NuGet.IPackage>, System.Collections.Generic.IEnumerable`1<NuGet.PackageOperation>, Boolean, Boolean, NuGet.ILogger)
   at NuGet.Dialog.Providers.UpdatesProvider.ExecuteCommand(NuGet.IProjectManager, NuGet.Dialog.Providers.PackageItem, NuGet.VisualStudio.IVsPackageManager, System.Collections.Generic.IList`1<NuGet.PackageOperation>)
   at NuGet.Dialog.Providers.OnlineProvider.ExecuteCommandOnProject(EnvDTE.Project, NuGet.Dialog.Providers.PackageItem, NuGet.VisualStudio.IVsPackageManager, System.Collections.Generic.IList`1<NuGet.PackageOperation>)
   at NuGet.Dialog.Providers.OnlineProvider.ExecuteCore(NuGet.Dialog.Providers.PackageItem)
   at NuGet.Dialog.Providers.PackagesProviderBase.OnRunWorkerDoWork(System.Object, System.ComponentModel.DoWorkEventArgs)
   at System.ComponentModel.BackgroundWorker.OnDoWork(System.ComponentModel.DoWorkEventArgs)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(System.Object)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr, System.Object[], System.Object, System.Object[] ByRef)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(System.Runtime.Remoting.Messaging.IMessage, System.Runtime.Remoting.Messaging.IMessageSink)
   at System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack(System.Object)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

有一个类似于我的StackOverflow Question,但是对于Visual Studio 2010.我们的堆栈跟踪是相同的。不幸的是,问题从未得到解答。

最终更新

我最后通过进入Visual Studio设置并修复安装来解决这个问题。

1 个答案:

答案 0 :(得分:1)

修复你的VS 2013,然后建议卸载Nuget Package Manager,然后下载并重新安装。