我有一個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異常。
感謝您的迴應。我開始認爲沒有人會。我重新閱讀我的問題,並意識到我沒有說解決方案編譯和運行沒有問題。錯誤只在設計師手中。由於程序集A和B(控件和res程序集)是許多開發項目的工具包/框架的一部分,因此讓設計器失敗不是一種選擇。 –
我們確實有一個臨時解決方案,我將在此爲其他觀衆強調一下,但不提供我正在尋找的解決方案。 **將組件B(資源組件)放入GAC **這解決了設計者的問題,但提出了我們目前不願意追求的「分銷複雜性」。我仍然希望找到一個解決方案,允許在解決方案中包含依賴關係文件夾。 –