偶尔,但很常见地,由于没有明显的原因,VS 2012会锁定一个对话框,提示“等待后台操作完成”。例如,这可能在普通的旧代码编辑期间发生,而不是在显式调用任何IDE命令时发生。
是什么原因造成的,对此我能做些什么?
我正在运行ReSharper 7,但我并不是唯一一个遇到这种情况的人。
偶尔,但很常见地,由于没有明显的原因,VS 2012会锁定一个对话框,提示“等待后台操作完成”。例如,这可能在普通的旧代码编辑期间发生,而不是在显式调用任何IDE命令时发生。
是什么原因造成的,对此我能做些什么?
我正在运行ReSharper 7,但我并不是唯一一个遇到这种情况的人。
Answers:
我遇到了同样的问题,尤其是在cshtml页面中。我找到了此页面:https : //devblogs.microsoft.com/aspnet/visual-studio-11-beta-razor-editor-issue-workaround建议将工具>选项>文本编辑器> HTML>制表符中的缩进选项更改为聪明而不是Block。就我而言,它已经设置为“ 智能”,然后将其更改回“ 阻止”即可解决该问题。
更新:我错了,那不能解决对话,只是延迟了对话,直到我复制或粘贴。最终对我有用的是进入工具>导入和导出设置...>重置所有设置。
可能相关的问题:Visual Studios 2010-Asp.net MVC 4 Beta-粘贴上的长时间延迟和频繁崩溃
这是非常通用的诊断。它由COM触发,COM在Visual Studio中大量使用以实现可扩展性。基础触发器是IMessageFilter接口。当COM将一个方法调用封送给另一个线程并且该调用在60秒钟内未完成时,将发生触发器。
实际的通知没有什么价值,它是在告诉您一些您已经知道的信息。到60秒过去时,您通常已经注意到一切运行不正常。缺乏有用的知识,Visual Studio实际上并没有完全消失。但是,该调用必须在VS再次可用之前完成。您无能为力,只不过要踩脚等一下。
此问题几乎总是由外接程序引起的。Resharper当然是个不错的选择。通过逐个禁用加载项直到问题消失,您可以找到麻烦的制造者。这是新版本的Visual Studio常见的问题,外接程序供应商需要一段时间才能解决错误和挂断。请与供应商联系以获取支持,并通常寻找可以解决问题的更新。
我遇到了同样的问题,在我的情况下是DevExpress。
每次执行复制或剪切操作时,似乎都挂起了Visual Studio,并显示以下消息:
“等待后台操作完成”。
事实证明,它实际上是在后台执行一次性任务,并且确实需要一段时间(超过5分钟)。
也许如果我正常地等待了,它可能会消失,但是最终解决的是将工具箱显示到视图中(被隐藏/折叠),然后又弹出了一个窗口,上面说:
“添加[SomeDevExpressAssemblyNameHere] .dll”
这会使用DevExpress填充工具栏所需的每个dll的名称进行更新。
这样,我可以看到操作进度,完成后可以像往常一样再次使用复制/剪切粘贴。
希望这可以帮助。
对我来说,解决方法是将Web Essentials 2012更新为版本1.8。
有问题的版本是1.6
我在虚拟机中运行Visual Studio时遇到了这个问题-在Mac OS X Mountain Lion上运行的Virtual Box 4.2,它托管了全新的Windows 7安装,除了Visual Studio外,没有安装其他任何东西。我发现该问题是由2个单独的问题引起的。
首先,我的项目在与主机OS共享的文件夹中。换句话说,在Windows Guest上,我的项目出现在网络驱动器上。因此,从网络驱动器在Visual Studio中打开项目似乎会导致此问题,因为当我将项目复制到Windows VM的C驱动器并从C驱动器上的副本在Visual Studio中打开项目时,问题就消失了。
其次,当虚拟机上的硬盘已满时,我又开始遇到问题。我的硬盘驱动器上有大约1GB的可用空间。当我增加虚拟机上硬盘的大小时,此问题就消失了。
刚刚重现了Codemaid附加组件的类似问题。找到了这个对话:
这个问题有很多细节,但是要重述这个问题,是当从UI线程(例如,像Spade这样的WPF上下文)访问API时,VS2012 C ++ API引入了死锁问题。在VS2010中这不是问题,Microsoft已修复了VS2013的问题,但他们不会为VS2012对其进行补丁。
似乎表明应该针对(Codemaid)进行修复:
请密切注意此主题,以确保问题的持续解决。它与较大的重写有关,因此,我一直在通过首先添加许多单元测试来确保此功能在更改后保持一致,从而朝着它进行构建。
http://geekswithblogs.net/sevenfortytwo/archive/2006/11/23/97947.aspx
RUN> iisreset
现在可以在VS 2012上正常工作
我想我已经找到了线索!一切都以dcomcnfg.exe结尾!
打开它并进入以下路径:
组件服务>计算机>我的计算机> dcom配置
单击dcom后,您会看到许多警告取决于您PC上的组件数量。
在每个消息框中单击是,以便为dcom添加正确的记录。
我遇到了同样的问题,并且以管理员身份运行VS似乎对我来说是成功的窍门(我在Visual Studio 2012 Express挂起时发布了类似的问题,并在格式文档命令上标有“等待后台操作完成”消息,标记为作为与此副本的副本,因此我想我也将在此分享)。