5

我正在尝试在 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    

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

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

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

我在网上找到了一些类似的线程(),但它们都没有定论或对我不起作用。我还没有尝试完全重新安装 Visual Studio,但接下来我可能不得不尝试。

4

7 回答 7

2

我已经通过设置成功解决了这个问题:

工具 -> 选项 -> 文本编辑器 -> C++ -> 高级 -> “禁用数据库”

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

于 2013-01-04T15:57:37.497 回答
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 将按预期工作。

于 2012-11-26T22:01:25.690 回答
0

我在 VS2013 中遇到了这个错误

为我解决的问题是

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

之后我不再收到错误,希望这可以帮助某人。

于 2014-12-06T19:47:19.203 回答
0

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

于 2015-02-06T15:59:14.213 回答
0

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

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

于 2016-11-21T18:12:00.117 回答
0

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

于 2018-03-31T22:24:01.890 回答
0

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

于 2018-08-27T16:28:32.313 回答