1

WPFToolKit v3.5.50211.1 で VS2008 SP1 を使用しています。

次のように、クラス ライブラリ プロジェクトに WPF UserControls をネストしました。

  • MainWpfUserControl
  • のインスタンスが含まれていますNestedUserControl
  • DataGridこれには、WPF ツールキットののインスタンスが含まれています。

同じクラス ライブラリ プロジェクトには、ホストする 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, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35' に由来します。タイプ B は、場所「C:\Documents and Settings\...\Local Settings\Application Data\Microsoft\VisualStudio」の「LoadNeither」コンテキストの「WPFToolkit、Version=3.5.40128.1、Culture=neutral、PublicKeyToken=31bf3856ad364e35」に由来します。 \9.0\ProjectAssemblies\zfh65-u101\WPFToolkit.dll'

誰かが似たようなことを経験しましたか?

アップデート

WPFToolkit.dll を GAC に配置することで問題を回避できたようです。しかし、これは他の理由から望ましくありません (たとえば、CopyLocal のデフォルトが false になったなど)。したがって、問題は Load Context に関連しているようです。これを制御する方法はありますか?

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-対 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 に答える