web-dev-qa-db-ja.com

アセンブリからの型は、古いバージョンのブレンドSDKで構築されており、WindowsプレゼンテーションFoundation 4プロジェクトではサポートされていません

私はVS 2013でWPFプロジェクトを作成しました。VS2015にアップグレードした後、このエラーはBlend SDKから派生した型でデザイナーに表示されました:

アセンブリからの型は、古いバージョンのブレンドSDKで構築されており、WindowsプレゼンテーションFoundation 4プロジェクトではサポートされていません

23
Domysee
  1. 管理者としてコマンドプロンプトを実行する

  2. ディレクトリをBlend SDKに変更します:cd C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries\

  3. DLLの登録:gacutil -i System.Windows.Interactivity.dll

  4. Visual Studioを再起動します。

リファレンス: https://connect.Microsoft.com/VisualStudio/feedback/details/755407/xaml-designer-will-not-display-when-using-blend-sdk-behaviors

38

この問題は、.slnファイルと.csprojファイルのバージョン番号を手動で変更することで解決できます。

.csprojおよび.csproj.userで、ToolsVersionを現在のVisual Studioバージョンに変更します。 VS 2013はバージョン12、VS 2015はバージョン14です。

.slnのVisualStudioVersionを現在のバージョンに変更すると、[バージョン情報]ウィンドウに表示されます。

また、Microsoft Visual Studio Solution File, Format Version現在のバージョン(例:14.00、12.00)

注:これは組み込みアセンブリでのみ機能します。外部の依存関係(Prismなど)がこのエラーの原因である場合は、新しいBlend SDKを使用して再コンパイルする必要があります。また、依存関係を更新してみることもできます。おそらく最新バージョンは、最新のBlend SDKを使用してすでにコンパイルされています。

9
Domysee

ここでの他の答えはどれも私にとってうまくいきませんでした。最終的にそれを解決したのは、SDKフォルダー内のファイルの.NET v4.0バージョンを削除することでした。

C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.0\Libraries\

NuGet経由でv4.5ファイルを参照していますが、designerが上記のフォルダーでファイルを見つけていたようです。 v4.0ファイルはGACに登録されていません。

8
Terrence

Visual Studio 2017を使用して同様の問題が発生していましたが、上記のいずれの回答でも完全に解決しませんでした。マイクロソフトの開発者コミュニティを見つけました ページ トリックを実行する回避策がありました。 Bran Haggerによるコメントでは、ソリューションのディレクトリから.vsフォルダーを削除することを推奨しています。この追加の手順により、キャッシュがクリアされ、Visual Studioによってキャッシュが再構築されました。

2
Ryan Roos

人気のある答えは有効ですが、開発者の世界では物事は常に変化しているので、(IMO)より良い解決策が今あると思います。

2018年12月、Microsoftは、WPFのXAML動作用の公式のオープンソースでサポートされているNuGetパッケージをリリースしました。 (UWPには別のものがあります。)このパッケージへの移行は非常に簡単です。現在のNuGetパッケージをアンインストールし、いくつかの参照を削除して、このパッケージをインストールし、usingステートメント(またはFQN)を変更する必要があります。

https://www.nuget.org/packages/Microsoft.Xaml.Behaviors.Wpf/

https://devblogs.Microsoft.com/dotnet/open-sourcing-xaml-behaviors-for-wpf/

私はこのSO回答でそれについて読んだので、クレジットはそのOPに行きます:

System.Windows.Interactivityをプロジェクトに追加する方法?

1
skst

これは、異なるバージョンのSystem.Windows.Interactivity.dllを混在させている可能性もあります。特に、いくつかの異なるパッケージが提供するnugetからSDKを取得している場合は、次のようになります。

https://www.nuget.org/packages/Expression.Blend.Sdk/https://www.nuget.org/packages/System.Windows.Interactivity.WPF/

この場合、プロジェクト間でこれらのライブラリを同期する必要があります。

0
hillin

Microsoft Visual Studioソリューションファイルのフォーマットバージョンを14.00に変更するだけでうまくいきました。

0
rmdev

ソリューションフォルダー内の.vsファイルを削除すると、問題が解決しました。 My Visual Studio 2017を更新し、以前のバージョンのVisual Studio 2017で以前にビルドされたプロジェクトを開いた後、この問題が発生しました。

0
ARUN MOHANAN