1

我正在通过将业务逻辑与GUI分离来清理旧版的C++ - CLI软件。尽管我已经离开了Windows窗体设计器代码的事实以及独自一人,现在将不显示我的形式,而是,抛出一个异常:为什么Visual Studio的Windows窗体设计器停止工作?

Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)) 

调用堆栈看起来是这样的:

at EnvDTE.CodeFunction.GetStartPoint(vsCMPart Part) 
at Microsoft.VisualC.CppCodeParser.OnMethodPopulateStatements(Object sender, EventArgs e) 
at System.CodeDom.CodeMemberMethod.get_Statements() 
at System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration) 
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager) 
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager) 
at System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host) 

...这些都不是我的代码。我可能会打扰什么?

回答

2

基于调用堆栈,看起来WinForms设计器正在ch咽,试图读取生成文件中InitializeComponents方法中的代码。实际的错误派对是C++代码模型的实现。

这里最有可能发生的是该方法中的一个特定语句导致代码模型在这里出错。我会首先评论整个方法,验证是否解决了问题,然后慢慢取消注释部分,直到我追查到有问题的线段为止

+0

嗯,我不知道这是什么,因为我没有改变香肠,但似乎突然恢复了生机。如果它再次发生,我会看看你的建议。干杯... –

-1

我使用了错误,并且有几个线索引用了各种不同的应用程序, :

http://forums.iis.net/t/1148764.aspx/1http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/11e91d76-f5f3-45c3-b3f6-30c1e4121b9f/

是只有两个

这个错误的主要原因似乎是一个用户或进程试图访问,运行或写入它无法访问的内容。

您是否曾尝试以管理员身份运行该应用程序?

如果不起作用,请确保项目文件夹和应用程序文件夹位于同一分区上,因为这可能会影响权限。

你有没有升级你的操作系统,因为该应用程序被任何机会安装?如果是这样,您的GUID可能与应用程序上存储的GUID不匹配,并且可能导致错误卸载/重新安装将解决此问题。

希望帮助

+0

这与运行应用程序无关(它工作得很好);它只是当我尝试改变GUI时,窗体设计师摔倒了。 –

0

检查是否有没有自己的代码中InitializeComponent() function.I取代它,现在它工作正常)

相关问题