2010-12-17 76 views
0

我開發了一個應用程序,它使用MEF將所有可用的UserControls顯示在窗體上。用戶控件和表單都駐留在同一個程序集中。這一切工作正常,當我從XP啓動exe,但在使用Windows 7機器時拋出異常。有沒有解決這個問題的建議。Windows 7上的MEF異常

+4

我們需要一些代碼或示例,以及明確的錯誤信息。 – IAbstract 2010-12-17 01:36:35

回答

0

嗨,

我把這個整理出來。我在應用程序中使用Log4Net,出於一些奇怪的原因,Winforms的安裝應用程序沒有使用log4not xml文件。這在安裝的版本中缺少,這就是應用程序出現錯誤的原因。

感謝您的回覆。

1

我的第一個建議是展示你的構圖方法和一些代碼示例。否則,我會消除除了一個UserControl之外的所有負載。從那裏開始。請確保您:

[Export(typeof(IUserControl))] 
public class myUserControl : UserControl, IUserControl 
{ 
    ... 
    /* 
    * control to be exported: 
    * note: you can forego IUserControl and just use UserControl 
    *  but make sure you do so throughout the import and 
    *  export attributes. 
    */ 
    ... 
} 

...然後在主機應用:

[ImportMany(typeof(IUserControl))] 
IEnumerable<IUserControl> UserControls {get;} 

我使用的IEnumerable做爲一個例子,因爲你期望的負載幾個用戶控件。我假設你將加載控件以便一次顯示。否則,如果你不想讓他們一下子,而是需求,我仍然會列舉這樣:

[ImportMany(typeof(IUserControl))] 
IEnumerable<Lazy<IUserControl>> UserControls {get;} 

這樣你可以遍歷,對空測試UserControls[index].Value

沒有更多的信息,這真的是我能爲你做的最好的。

相關問題