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

Ada*_*eld 5 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) 
Run Code Online (Sandbox Code Playgroud)

如果我调试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    
Run Code Online (Sandbox Code Playgroud)

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

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

  • 重新安装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"卸载任何内容

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

Ada*_*eld 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 扩展有关。由于我不再需要该扩展,因此我不需要它的注册表项,因此如果没有它们,设计器将按预期工作。