2011-05-02 59 views
1

我使用VS2008 SP1和WPFToolKit v3.5.50211.1。WinForms設計器在託管嵌套的WPF UserControls時失敗

我在一個類庫項目嵌套WPF用戶控件如下:

  • MainWpfUserControl
  • 包含NestedUserControl
  • 其中包含了從WPF工具包一個DataGrid的一個實例的實例。

相同的類庫項目包含一個帶有ElementHost的WinForms UserControl,它承載着MainWpfUserControl

我在設計器中打開WinForms UserControl時遇到了奇怪的錯誤。有點周圍挖(捕捉和記錄在NestedUserControl構造函數拋出的異常)後,似乎如下拋出一個異常:

[A] Microsoft.Windows.Controls.DataGrid不能轉換爲[ B] Microsoft.Windows.Controls.DataGrid。類型A來源於位於'C:\ Program Files \ WPF Toolkit \ v3.5.50211.1 \ WPFToolkit.dll'的上下文'LoadFrom'中的'WPFToolkit,版本= 3.5.40128.1,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'。類型B源於位於'C:\ Documents and Settings \ ... \ Local Settings \ Application Data \ Microsoft \ VisualStudio'上下文'LoadNeither'中的'WPFToolkit,版本= 3.5.40128.1,Culture = neutral,PublicKeyToken = 31bf3856ad364e35' \ 9.0 \ ProjectAssemblies \ zfh65-u101 \ WPFToolkit.dll'

有沒有人遇到類似的東西?

UPDATE

我似乎已經成功地通過把WPFToolkit.dll在GAC解決該問題的工作。但由於其他原因,這是不理想的(例如,CopyLocal現在默認爲false)。所以看起來問題與Load Context有關。有什麼辦法可以控制這個嗎?

回答

1

經過一番研究,我遇到的問題似乎是由VS設計者加載錯誤版本的程序集造成的。看起來類似的問題說明如下:

http://blogs.telerik.com/blogs/posts/08-12-23/visual_studio_ldquo_error_creating_control_rdquo.aspx

http://connect.microsoft.com/VisualStudio/feedback/details/361826/error-creating-control-text-could-not-be-set-on-property-with-custom-asp-net-server-controls-in-vs-2008-sp1

我可以解決此問題通過執行以下操作:

  • 關閉Visual Studio 2008中

  • 清除程序集下載緩存(gacutil/cdl)

  • 刪除VS2008 ProjectAssemblies文件夾:

    %USERPROFILE%\本地設置\應用數據\微軟\ VisualStudio的\ 9。0 \ ProjectAssemblies

  • 重新啓動Visual Studio