1

我将 VS2008 SP1 与 WPFToolKit v3.5.50211.1 一起使用。

我在类库项目中嵌套了 WPF UserControls,如下所示:

  • MainWpfUserControl
  • 包含一个实例NestedUserControl
  • DataGrid其中包含来自 WPF Toolkit的一个实例。

同一个类库项目包含一个 WinForms UserControl 和一个承载MainWpfUserControl.

在设计器中打开 WinForms UserControl 时,我遇到了奇怪的错误。经过一番挖掘(捕获并记录NestedUserControl构造函数中抛出的异常),似乎抛出了如下异常:

[A]Microsoft.Windows.Controls.DataGrid 无法转换为 [B]Microsoft.Windows.Controls.DataGrid。类型 A 源自 'WPFToolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 在位置 'C:\Program Files\WPF Toolkit\v3.5.50211.1\WPFToolkit.dll' 的上下文 'LoadFrom' 中。类型 B 源自 'WPFToolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 在位置 'C:\Documents and Settings\...\Local Settings\Application Data\Microsoft\VisualStudio 的上下文 'LoadNeither' \9.0\ProjectAssemblies\zfh65-u101\WPFToolkit.dll'

有没有人经历过类似的事情?

更新

通过将 WPFToolkit.dll 放入 GAC,我似乎已经成功地解决了这个问题。但出于其他原因,这是不可取的(例如,CopyLocal 现在默认为 false)。所以看来问题与加载上下文有关。有没有办法控制这个?

4

1 回答 1

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-在-vs-2008-sp1

我可以通过执行以下操作来解决此问题:

  • 关闭 Visual Studio 2008

  • 清除程序集下载缓存 (gacutil /cdl)

  • 删除 VS2008 ProjectAssemblies 文件夹:

    %USERPROFILE%\Local Settings\Application Data\Microsoft\VisualStudio\9.0\ProjectAssemblies

  • 重新启动 Visual Studio

于 2011-05-06T06:20:21.943 回答