2011-02-18 174 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」不存在,所以我添加它,現在一切都很好。