2011-05-02 54 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