2009-05-20 23 views
2

我們正在經歷一些情況下,上加載了一個項目,在其他方面OK,給出了一個錯誤在設計師的WinForms線沿線的:VS 2008中的表單設計者的問題?

無法加載文件或程序集「在MyLibrary,版本= 1.4.3419.14461, Culture = neutral,PublicKeyToken = null'或它的一個依賴關係。該系統找不到指定的文件。

和Visual Studio死亡,促使我們,如果我們要調試信息發送到微軟 - 如果此提示被忽略,我們可以關閉受影響的標籤頁,保存所有,一切都在重裝罰款;如果我們不關閉受影響的選項卡,問題會重複。

我不確定這是否是一個Visual Studio的錯誤,或者我們正在做一些「錯誤」或意外。有沒有人有什麼想法在哪裏看,或這種問題的常見原因? (爲了論證的緣故,解決方案由MyLibrary和MyLibrary.Windows組成,它有一個對前者的項目引用,一旦Visual Studio加載,兩個項目都不會產生問題,如果它有所不同,從VS2003,被遷移這又沒有表現出這種崩潰)

編輯:

也嘗試加載與調試器附着的解決方案,以解決加載,它崩潰了不停止對任何異常

回答

3

我以前見過這種類型的崩潰,造成上沒有簡單類型或結構由Visual Studio設計已經支持自定義用戶控件暴露公共屬性。

例如(編寫的代碼即興來說明):

public class MyUserControl : UserControl 
{ 
    // This will be fine. 
    public int RowCount { get; set; } 

    // This will cause problems 
    public CustomerEntity DisplaySubject { get; set; } 
} 

有什麼事發生的是,設計師試圖從設計師「代碼」(在單獨的文件)deserialise的和對意外的類型感到困惑。

一個解決的事情的方式是不公開使用自定義類型的屬性,但是這是在(啊哈)主持接口痛苦。

另一種方法是標記與DesignerSerializationVisibility屬性的屬性,指定隱藏(不要在初始化代碼不堅持)。

如果你很勇敢,你可以看看使用DesignerSerialization屬性來自己控制序列化,但你不可能需要它。

1

您CA ñ嘗試:

  • 清潔解決方案,也完全重建
  • 刪除有問題的引用,然後再添加它們
  • 清潔解決方案,並進行完全重建再次
  • 重新啓動Visual Studio

好運

編輯:

也嘗試設置參考DLL特定版本爲false,並重新加載的解決方案。見http://channel9.msdn.com/forums/TechOff/261335-Dreadful-Visual-Studio-2008-crash-Solved/?CommentID=392089

+0

嚴格來說,這些選項不可用 - VS加載解決方案時崩潰;只有解決方法是關閉違規選項卡,全部保存(保存suo文件),或者完全刪除suo文件,然後解決方案將加載並在新的Visual Studio會話中正常工作。它似乎只在使用用戶控件檢出的表單在關閉Visual Studio時處於設計模式時纔會發生...... – 2009-05-20 11:02:18

+0

嘗試在MyLibrary.Window引用爲false的引用的MyLibrary上設置特定的版本屬性。也許程序集版本混淆了,保存全部並重新加載解決方案。這裏更多的信息:http://channel9.msdn.com/forums/TechOff/261335-Dreadful-Visual-Studio-2008-crash-Solved/?CommentID=392089 – amrtn 2009-05-20 12:05:57

0

你有一個控制,使得關於它的父窗體的假設?當窗體設計器加載您的形式,它創建您的控件的實例,但不是你的窗體類的一個實例。

所以,如果你控制一個只依賴於以往任何時候都與你的表單類作爲其父被實例化,當加載到窗體設計器可能崩潰。

+0

的控制不會明確提及他們的形式on(不超過任何從System.Windows.Forms.UserControl繼承的控件) – 2009-05-20 10:58:20