トップ回答者
Visual Studio 2015 のデザイナで起こるエラーについて

質問
-
Windows8.1Pro
Visual Studio 2015
.NetFramework4.5
でWPFアプリケーションを作成しています。
以前にVisual Studio 2012で作成したソリューションを2015に移行しようと思い、
2015でコンパイルしてみたのですが、
「Blend SDK の古いバージョンでビルドされているため、
Windows Presentation Framework 4 プロジェクトではサポートされません。」
といったエラーが表示され、デザイナに画面が表示されなくなります。
ビルド自体は行われ、実行も問題無く行われていますが、
デザイナに表示されないとレイアウトを確認するのにいちいち実行しなければならず不便です。
このエラーはどのようにして解決すればよいのでしょうか。
試しに2015で.NetFramework4.6にして新規プロジェクトを作成してみましたが、
System.Windows.Interactivityの機能を使うとこのエラーが発生するようです。
※テストプログラムでは TriggerAction<>を継承したクラスをXAML上で使用すると起こった。
インターネットで調べた範囲では、以前のバージョンでも起こっていたようですが、
解決手段は見つかりませんでした。
Blend SDKの新しいバージョンが出るのを待つしかないのでしょうか。
回答
-
私のところでもずっとこの問題で悩まされていました。
VisualStudioのインストール順は特に関係ないようです。私の場合は
System.Windows.Interactivity.dll を GAC に登録することで直りました。
管理者モードでの実行が必要です。
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\
で
gacutil.exe -i "C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries\System.Windows.Interactivity.dll"
しました。
すべての返信
-
私の環境でも再現しました。
Windows 10 Pro
Visual Studio Community 2015
Blend for VisualStudio Community 2015
.NetFramework4.6
System.Windows.Interactivity を Ver.4.0.0.0 にした時のエラー
型 'HogehogeBehavior' のインスタンスを型 'BehaviorCollection' のコレクションに追加することはできません。型 'T' の項目のみが許可されます。
これは出るときと出ないときがあり、違いはまだ判ってません。
System.Windows.Interactivity を Ver.4.5.0.0 にした時のエラー
アセンブリ 'WpfApplicationInteractivityTest' からの型 'HogehogeBehavior' は Blend SDK の古いバージョンでビルドされているため、Windows Presentation Framework 4 プロジェクトではサポートされません。
これは確実に発生します。
-- 追記 --
いずれもXAMLデザイナ上だけで発生し、Ver.4.0.0.0 の時はデザイン画面も正常に描画されます。
Ver.4.5.0.0 の時はリビルド直後のみデザイン画面が描画されますが、何か操作をするとデザイン画面に無効なマークアップと表示されてしまいます。
- 編集済み hihijiji 2015年8月8日 3:10
-
返信ありがとうございます。
この問題が起こらない環境もあるのですね。
Blend for VisualStudio 2015も入っています。
System.Windows.InteractivityはVer.4.0.0.0とVer.4.5.0.0が入っています。
また、hihijijiさんが言われていますが、下記エラーも発生します。
型 'HogehogeBehavior' のインスタンスを型 'BehaviorCollection' のコレクションに追加することはできません。型 'T' の項目のみが許可されます。
あれから色々試してみましたが、.NetFramework 4.5.2以降だとBlendで
BehaviorやTriggerActionが使えないらしくタブ上に何も出てきませんでした。
.NetFramework 4.5.1だと使えますが、エラーは発生します。
アドマイヤコジーンさんはどのような環境で試されていますか? -
参考までに再現したプログラムを貼っておきます。
Visual Studio Professional 2015
.NetFramework 4.5.1
System.Windows.Interactivity Ver.4.5.0.0// Class1.cs // ----------------------------------------------------------------- using System.Windows; using System.Windows.Interactivity; namespace WpfApplication1 { public class AlertAction : TriggerAction<DependencyObject> { protected override void Invoke(object parameter) { MessageBox.Show("Hello!"); } } } // -----------------------------------------------------------------
<!-- MainWindow.xaml --> <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:local="clr-namespace:WpfApplication1" Title="MainWindow" Width="525" Height="350"> <i:Interaction.Triggers> <i:EventTrigger EventName="ContentRendered"> <local:AlertAction /> </i:EventTrigger> </i:Interaction.Triggers> <Grid /> </Window>
-
先ほど私もそのエラーが発生しましたが、以下の情報を参考にして、Visual Studio 2015 Enterpriseの再起動により解決いたしました。再起動後は全く正常に動作しており、再度、Visual Studio 2015 Enterpriseを再起動しても問題ありませんでした。
ありがとうございました。(参考)
http://twilog.org/ugaya40/month-1301★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 回答の候補に設定 星 睦美 2015年9月28日 0:34
-
あれから進展がありましたので書き込みます。
同じVisualStudio 2015 Proでも、同僚の環境では問題が起こらなかったため、
環境によるものと断定しVisual Studioを再インストールした所、問題が起こらなくなりました。
問題が起こっていた時、Visual Studio 2013も一緒にインストールしていたのですが、
2015 → 2013の順でインストールすると起きるのではないかと推測します。
さすがに二種類のVisual Studioを何度もインストールして試す時間が無いため推測となりますが、
問題が発生している方がいらっしゃいましたら検証して頂ければ幸いです。 -
-
こんにちは。
もう解決されているかもしれませんが、こちらでも現象がでましたのでご報告します。VisualStudioの[ツール]->[オプション]->[XMLデザイナー]で
「プロジェクトコードをXMLデザイナーで実行する(サポートされている場合)」
のチェックをOFFに設定して、VisualStudioを再起動すると本現象が発生します。
チェックをONの状態では発生しません。---------------------------------------------------------
visualstudio 2015 community(VB) ~SP1
.Net Freamwork4.6- 回答の候補に設定 星 睦美 2016年4月5日 4:54
-
私のところでもずっとこの問題で悩まされていました。
VisualStudioのインストール順は特に関係ないようです。私の場合は
System.Windows.Interactivity.dll を GAC に登録することで直りました。
管理者モードでの実行が必要です。
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\
で
gacutil.exe -i "C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries\System.Windows.Interactivity.dll"
しました。