2013-07-30 18 views
1

我有一個wpf自定義控件(在AssemblyA中)引用外部程序集(AssemblyB)中的resx文件中的字符串資源。當在後面的代碼中使用字符串資源時WPF設計器拋出錯誤

public override void OnApplyTemplate() 
    { 
     try 
     { 
      base.OnApplyTemplate(); 

      // ... 
      // Do Stuff 
      // ... 
     } 
     catch (Exception ex) 
     { 
      Logger.Error(ExceptionCodes.Ex50000, ex); 
     } 
    } 

當我通過一個dll引用的頁面在另一種解決方案的另一個項目(AssemblyC)添加自定義的控制(在AssemblyA),控制系統出現故障的設計師展示。相反,設計人員顯示一個漂亮的大紅十字,並顯示消息 FileNotFoundException:無法加載文件或程序集「AssemblyB」。 AssemblyB還被添加爲AssemblyC的dll引用。

刪除AssemblyA中對字符串資源的引用可消除錯誤並允許控件在設計器中正確顯示。不幸的是,這不是一個選項,因爲在整個應用程序中使用字符串資源是出於支持的原因。

在AssemblyA中創建resx文件也會消除錯誤,但會分散資源,這對於進行開發來說不是一種選擇。

基於上述情況,設計者顯然沒有加載資源程序集。任何見解,將不勝感激。

在溶液中總結

CustomControl在組件A 1個參照從RESX文件在組件B在溶液1組裝體C在方案2的資源的字符串具有一個DLL參照上述兩個組件A和組件B甲程序集C中的UserControl使用程序集A中的CustomControl。Visual Studio WPF設計器在顯示UserControl時引發FileNotFound異常。

回答

0

讓它拋出錯誤,只是檢查你是否能夠編譯並運行,使解決方案C中的程序集爲exe並嘗試運行它。因爲使用Visual Studio 10.0.4,我已經多次看到該異常,但是如果它被編譯,它不會給出任何編譯器錯誤,只是嘗試編譯並運行它。

+0

感謝您的迴應。我開始認爲沒有人會。我重新閱讀我的問題,並意識到我沒有說解決方案編譯和運行沒有問題。錯誤只在設計師手中。由於程序集A和B(控件和res程序集)是許多開發項目的工具包/框架的一部分,因此讓設計器失敗不是一種選擇。 –

+0

我們確實有一個臨時解決方案,我將在此爲其他觀衆強調一下,但不提供我正在尋找的解決方案。 **將組件B(資源組件)放入GAC **這解決了設計者的問題,但提出了我們目前不願意追求的「分銷複雜性」。我仍然希望找到一個解決方案,允許在解決方案中包含依賴關係文件夾。 –

相關問題