この質問を投稿しているのは、解決するのが非常に難しく、時間がかかることがわかったので、解決策を文書化できるようにするためです。
私はSilverlight 4 プロジェクトでLaurent Bugnion の優れたMVVM Light Toolkitを使用しており、Microsoft.Practices.ServiceLocation で彼のViewModelLocatorパターンを使用しています。Blendability の設計時モデルをロードするための ServiceLocator 。最初に、 Expression Blend 4でのビューの読み込みは機能しており、設計時のデータ バインディングは優れていました。これは、Blend でエラー メッセージが表示されることなく、ある時点で機能しなくなりました。
Visual Studio 2010 SP1を使用してBlend.exeにアタッチし、問題をデバッグしました。EntryPointNotFoundException (エントリ ポイントが見つかりませんでした) 例外は、次のコード行でスローされていました。
return ServiceLocator.Current.GetInstance<ExampleViewModel>();
奇妙なことに、デザイン時のデータ バインディングが正しく機能している状態で、Visual Studio XAML デザイナーに同じビューを正常に読み込むことができました。別の Visual Studio インスタンスを使用して、XAML デザイナーをホストする Visual Studio インスタンスにデバッガーをアタッチし、ServiceLocator 呼び出しが正常に実行されていることを確認できました。
例外の詳細 (スタック トレース、InnerExcetion など) からは、問題に対するこれ以上の手がかりは得られず、役に立たないエラー メッセージをインターネットで検索しても、それ以上の情報は得られませんでした。
最終的に、Visual Studio のイミディエイト ウィンドウを使用して、問題の原因となっているコード行の一部を実行することで幸運に恵まれ、はるかに優れたエラー メッセージが表示されました。
?ServiceLocator.Current
タイプ 'Microsoft.Practices.ServiceLocation.ServiceLocator' は、'Microsoft.Practices.ServiceLocation.dll' と 'Microsoft.Practices.ServiceLocation.dll' の両方に存在します。
変更セットを以前に動作していたコードと比較すると、GalaSoft.MvvmLight.Extras.SL4 への参照をSilverlightプロジェクト (UI プロジェクトを参照する)の別の単体テスト フレームワークに追加したことに気付きました。このテスト プロジェクトは C:\Program Files (x86)\Laurent Bugnion (GalaSoft)\Mvvm Light Toolkit\Binaries\Silverlight4 からアセンブリを参照していましたが、UI プロジェクトは ..\packages\MvvmLightLibsPreview.4.0.0\ から参照していました。 lib\SL4. ナゲットパッケージMvvmLightLibsPreviewを使用して、MVVM Light をクライアント プロジェクトに追加しました。
ブレンド結果 - エラーと出力ウィンドウには、どの時点でもエラー メッセージは表示されませんでした。明らかに、問題をより迅速に把握するのに役立つ Blend のトラブルシューティング手法がない限り、本当の答えは必要ありません。