【发布时间】:2015-06-29 14:53:16
【问题描述】:
我正在尝试更新我的 Mvc Web 项目中的 NuGet 依赖项。我要去我的项目,右键单击它,然后去管理 NuGet 包。 NuGet 包管理器弹出,我单击“更新”,我要更新的特定包是“Microsoft ASP.NET 网页”和“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 设置并修复安装解决了这个问题。
【问题讨论】:
-
您是否在调试模式下尝试?
-
@Sushil - 是的。不过我并没有尝试构建它。
-
hmm.. 我通常在调试时尝试更新它时得到它。你有其他可能是我造成这种情况的 Visual Studio 插件吗?
-
@Sushil - 我使用的唯一插件是 ReSharper。但我已经安装了永远。这是我刚刚创建的一个新项目,由于某种原因,它似乎只发生在这个项目上。
-
我是这么认为的。你能看到这些链接并尝试他们的解决方案吗? seirer.net/blog/2014/5/20/… 和 seirer.net/blog/2014/5/20/…
标签: asp.net asp.net-mvc visual-studio-2013 nuget