2011-02-18 142 views
22

我使用的是VS2010,如果我在设计器模式下打开窗体并运行我的应用程序,设计器选项卡将不再显示窗体设计器,而是显示一个错误(并且它是只有通过重新启动IDE固定)说:Visual Studio 2010设计器运行出错

"To prevent possible data loss before loading the designer, the following errors must be resolved:"

1 Error:

"The designer could not be shown for this file because none of the classes within it can be designed. The designer inspected the following classes in the file: ##### --- The base class ##### could not be loaded. Ensure the assembly has been referenced and that all projects have been built"

我然后显示了以下调用堆栈:

at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager)
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)

任何帮助,非常感谢这实在是烦人。

谢谢,

乔尔。

回答

23

我得到这个Visual Studio的漏洞太多,然后现在,我也深深忽略了错误的文字,而不是我做到以下几点:

  1. 关闭设计选项卡
  2. 通过双击重新打开设计模式在解决方案资源管理器中,或通过右键单击源代码选项卡并选择视图设计器
  3. 突然之间,一切都再次运行!

如果没有帮助,您可能必须将项目符号2更改为: 关闭并重新启动Visual Studio。

也许这可以帮助你。

+4

嗨,感谢您的帮助,但我希望在每次发生这种情况时都不用重新启动IDE(这是很多次)。 – Joel 2011-02-20 18:57:29

+2

我同意,但直到比尔盖茨修复错误,我想你(我)必须。 – 2011-02-21 06:53:25

1

我能够避免这样做重新启动VS以下

  1. 添加一个新的用户控件
  2. 拖放一些自定义的用户控件上它(如果它给你一个错误,再次构建解决方案)。
  3. 重新打开你的控制。

在我的情况,我有一个winforms项目与其他自定义控件使用的几个自定义控件。每当我打开其中一些自定义控件时,就会得到“The base class ...”错误。添加一个新的自定义控件,构建项目,然后从我的项目中添加一些自定义控件到新的自定义控件,使我可以打开给我“基类...”错误的自定义控件。

更新:我想我发现了这个问题。我的控件没有正确添加到csproj文件中。在csproj文件中,用于UI控件/组件部分类的文件需要'DependentUpon'属性。

例如: 前:

<Compile Include="Windows\Forms\DataGridView.cs"> 
    <SubType>Component</SubType> 
</Compile> 
<Compile Include="Windows\Forms\DataGridView.Designer.cs" /> 

后:

<Compile Include="Windows\Forms\DataGridView.cs"> 
    <SubType>Component</SubType> 
</Compile> 
<Compile Include="Windows\Forms\DataGridView.Designer.cs"> 
    <DependentUpon>DataGridView.cs</DependentUpon> 
</Compile> 
2

我有同样的问题,我能够通过创建新的项目,以解决这一点,然后编译并运行该项目,然后我导入了所有的文件,并再次运行该项目,并自动再次工作没有任何额外的。

6

我通常关闭可视化表单,重新构建解决方案,右键单击,然后在表单代码中选择“视图设计器”。

非常非常讨厌。我正在考虑回到VS2008。

-Markus

0

看来,安装SP1后,问题已消失。

感谢您的帮助。

1

我有一种情况,自定义用户控件似乎正在创建错误(不知道为什么),所以我从表单中删除了对用户控件的引用,错误消失了。

3

关闭窗体。清理解决方案。重建解决方案。重新打开表单。当没有其他人会为我工作。

0

我不得不使用控制泛型

同样的问题
 MvpUserControl<Presenter,IViewMode> : UserControl 

我做它取出参考,并添加一次,清洗和重建,我希望这可以为别人有用的解决方案

0

我与VS2010 SP1有同样的问题。最后使用Windows Update,我看到了一些Visual Studio和.Net的更新,我安装了它们并且不再发生任何更新。

0

老帖子,但对于那些人可能会发现这...

刚跑在这个错误,对我来说是比较简单的解决。

发现它可能与您班级的名称有关,并将有问题的班级重命名为更高的班级。这是它出现在程序集中的字母顺序(其中A高于Z)。

MSDN Article

好运。

0

如果Form类不是文件中的第一个类,例如文件开头有一些辅助类,则会发生此错误。

要解决此问题,请将除Form类以外的所有其他类移动到文件的底部。

0

请勿在的代码Form1.Designer.cs。将你的逻辑移动到Form1.cs(点击F7上Form1.cs [设计]选项卡)。

0

"In the project file (.vcxproj), locate the entry for the target Framework version. For example, if your project is designed to use the .NET Framework 4.5, locate v4.5 in the element of the element. "

(Microsoft)

在我的情况下,“v4.5”不存在,所以我添加它,现在一切都很好。