打开Visual Studio 2010 Designer时,HRESULT异常:0x8CE00001

时间:2012-11-21 21:42:56

标签: visual-studio-2010 visual-studio-designer

我正在尝试在Windows 7上的Visual Studio 2010中设置一个新的Windows窗体应用程序(C ++ / CLI)。每当我尝试打开设计器时,它都会因为这个无用的错误而失败:

Exception from HRESULT: 0x8CE00001

Instances of this error (1)  

1.   Hide Call Stack 

at Microsoft.VisualStudio.Designer.Interfaces.IVSMDCodeDomProvider.get_CodeDomProvider()
at Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_Provider()
at Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_CompileUnit()
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload) 

如果我调试Visual Studio并中断CLR异常,它实际上会首先抛出此异常:

  

Microsoft.VisualStudio.Design.dll中出现'System.ArgumentException'类型的第一次机会异常

     

其他信息:参数不正确。 (HRESULT异常:0x80070057(E_INVALIDARG))

使用此调用堆栈:

>   Microsoft.VisualStudio.Design.dll!Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.VerifyNestedDocDataCompatible() + 0x15d bytes 
    Microsoft.VisualStudio.Design.dll!Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.Microsoft.VisualStudio.Designer.Interfaces.IVSMDDesignerLoader.Initialize(object pSp, object pHier, int itemid, object punkDocData) + 0xb5 bytes  
    [Native to Managed Transition]  
    vcpkg.dll!CVCFormEditorFactory::CreateEditorInstance()  + 0x2e49f bytes 
    msenv.dll!CVsUIShellOpenDocument::OpenSpecificEditor()  + 0x784 bytes   
    VCProject.dll!CVCFileNode::OpenSpecificEditor()  + 0xc6 bytes   
    VCProject.dll!CVCFileNode::OpenSpecificEditor()  + 0x3a bytes   
    VCProject.dll!CVCFileNode::DoOpenFile()  + 0x1fe bytes  
    VCProject.dll!CVCFileNode::DoDefaultAction()  + 0x5b bytes  
    VCProject.dll!CVCArchy::ExecCommand()  + 0x8c bytes 
    msenv.dll!CVsUIHierarchyBaseWin::ExecHierParentChain()  + 0x85 bytes    
    msenv.dll!CVsUIHierarchyBaseWin::WinExecCommand()  + 0x7d bytes 
    msenv.dll!CVsUIHierarchyBaseWin::ProcessLButtonDblClkMsg()  + 0xd8 bytes    
    msenv.dll!FnwpTVFixer()  + 0x76b49 bytes    
    user32.dll!_InternalCallWinProc@20()  + 0x23 bytes  
    user32.dll!_UserCallWinProcCheckWow@32()  + 0xb7 bytes  
    user32.dll!_DispatchMessageWorker@8()  + 0xed bytes 
    user32.dll!_DispatchMessageW@4()  + 0xf bytes   
    msenv.dll!ProcessMessage()  + 0x4d bytes    
    msenv.dll!CMsoCMHandler::EnvironmentMsgLoop()  + 0x87 bytes 
    msenv.dll!CMsoCMHandler::FPushMessageLoop()  + 0x79 bytes   
    msenv.dll!SCM::FPushMessageLoop()  + 0x8c bytes 
    msenv.dll!SCM_MsoCompMgr::FPushMessageLoop()  + 0x2a bytes  
    msenv.dll!CMsoComponent::PushMsgLoop()  + 0x28 bytes    
    msenv.dll!VStudioMainLogged()  + 0x22a bytes    
    msenv.dll!_VStudioMain()  + 0x78 bytes  
    devenv.exe!util_CallVsMain()  + 0xdb bytes  
    devenv.exe!CDevEnvAppId::Run()  + 0x693 bytes   
    devenv.exe!_WinMain@16()  + 0x9c bytes  
    devenv.exe!operator new[]()  + 0xb31c bytes 
    kernel32.dll!@BaseThreadInitThunk@12()  + 0x12 bytes    
    ntdll.dll!___RtlUserThreadStart@8()  + 0x27 bytes   
    ntdll.dll!__RtlUserThreadStart@8()  + 0x1b bytes    

这是一个干净的新项目(文件→新建→项目......→Visual C ++→CLR→Windows窗体应用程序)。创建新项目后,打开自动生成的Form1.h会导致错误,而不是Designer。但是,如果我创建一个C#Windows窗体应用程序而不是C ++ / CLI,它可以正常工作。

有关如何解决此问题并打开Designer的任何想法?我已经尝试了以下所有方面无济于事:

  • 重新安装VS 2010 SP1
  • 运行Windows Update,安装了两个与VS相关的更新(“Microsoft Visual Studio 2010 Service Pack 1更新(KB2736182)”和“Office运行时Microsoft Visual Studio 2010工具更新(KB2764593)”)
  • 安装KB2635973,修复了类似的问题
  • 安装上述
  • 后重新启动
  • 关闭DirectX控制面板中的所有DirectX调试/验证设置
  • 通过“程序和功能”控制面板以名称“Microsoft SQL Server Compact”卸载任何内容

我在网上发现了一些类似的帖子(onetwothree),但他们都没有结果或者没有为我工作过。我还没有尝试完全重新安装Visual Studio,但我可能不得不尝试下一步。

7 个答案:

答案 0 :(得分:2)

我已通过设置:

成功解决了问题
  

工具 - >选项 - > textEditor - > C ++ - >高级 - > “禁用数据库”

返回 false (出现DisableDataBase == true HRESULT错误时),而不是重新启动VisualStudio。

答案 1 :(得分:1)

经过多次修复和重新安装后,我认为这是Visual Studio扩展的一个问题。

完全卸载Visual Studio(即使使用VS2010_Uninstall-RTM.ENU.exe /full /netfx)并重新安装它也无济于事。但是,如果我创建了一个新的Windows用户,它对该用户来说效果很好。同样,如果我修改了我的HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0_Config注册表项(以及它们的子项),它就可以了。

经过艰苦地比较我的旧注册表(它给出错误的地方)与新注册表(它工作的地方)并协调它们之后,剩下的唯一差异与特定的VS扩展相关。由于我不再需要该扩展,因此我不需要其注册表项,因此如果没有它们,Designer将按预期工作。

答案 2 :(得分:0)

我在VS2013中收到此错误

为我解决的是

  • 删除预编译的头文件
  • 使用“以管理员身份运行”重新打开VS
  • 重建解决方案

之后我不再收到错误,希望这有助于某人。

答案 3 :(得分:0)

我在Visual Studio 2012中解决了这个问题。我的项目位于Dropbox目录中,并且在我将项目移动到桌面之前出现了来自hresult 0x8ce00001的异常问题。我认为Dropbox的版本控制活动可能与此问题有关。我希望这可以帮助别人!

答案 4 :(得分:0)

我解决了这个问题,只安装了SQL Server Compact 3.5。

注意,也许你的项目需要版本4.0。

答案 5 :(得分:0)

构建 - >清洁解决方案 关闭Visual Studio并重新打开。 这解决了我的问题。

答案 6 :(得分:0)

这个问题很旧,但是由于我在VS 2017中找到的解决方案非常简单,因此我决定发布它。对我来说,当我从Debug X86切换到Debug X64然后又回到X86时,这个问题就开始了。由于我没有意识到问题何时出现,因此我浪费了大量时间来寻找解决方案。但是当我返回Debug X64时,问题就消失了……