我有一个其他人使用.NET Framework 4编写的项目 我对其中一种表单有疑问(其他表单正确打开)。
当我尝试在“设计模式”下打开Form1时,Visual Studio 2017显示错误屏幕并返回 “无法解析方法'InitializeComponent'。解析器报告以下错误'无效的符号种类:NamedType'。请在任务列表中查找潜在的错误。”
带有调用堆栈
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.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)
答案 0 :(得分:9)
为了增加知识范围,我遇到了同样的错误。我的情况是我正在升级由JetBrains dotPeek创建的解决方案。其解决方案版本为10.0(VS2008),并已针对VS2017转换为15.0(VS2015),并且是.NET 3.5目标类库。打开表单后(采用没有设计器文件的旧样式),在打开设计器时总是引发错误(但是运行类库就可以了)。在仔细检查InitializeComponent的每一行时,我发现了一个“ this.Name = nameof(formname)”。在查看另一个有效的表单时,我看到了“ this.Name =“ formname””。一旦我将生产线换成其他方法,设计师就可以完美打开!
答案 1 :(得分:1)
转到 InitializeComponent() 函数并搜索 nameof()。如果找到,只需将值部分替换为准确值。
就我而言是
this.Text = nameof (Form1);
改为:
this.Text = "Page1";
答案 2 :(得分:0)
请检查组件,清理,重建并查看是否仍然出现此错误。也许重新启动Visual Studio。
欢呼