21

ユーザーコントロールを含むプロジェクトがあります。何らかの理由で、上記のコントロールを使用するウィンドウのデザイン ビューが機能を停止し、「無効なマークアップ」と表示されます。ユーザー コントロールの一部のメンバーが認識されていないか、アクセスできないというエラーが表示されます。ただし、プロジェクトは問題なくコンパイルおよび実行されます。VS2010 にロードすると、エディターは正常に動作し、エラーはまったく発生しません。Expression Blend でも同じです。

これまでのところ、典型的なクリーン、再構築、obj から手動での削除、.xaml の更新と再構築を試みましたが、/resetuserdata と /resetsettings を使用して VS2012 を起動しようとしましたが、問題は解決しません。私はプロジェクトのはるかに古いリビジョンにロールバックしました。デザイナーが問題なく動作していたとき、サイコロはありませんでした-同じエラーです。また、VS2012を新しいWindowsユーザーとして起動して、保存されている可能性のあるappdataを回避しようとしましたが、これも失敗しました。

他の種類のキャッシュまたは手動で削除できるものはありますか?

4

11 に答える 11

20

VS2012 では、ShadowCache (レンダリング デザイナーに使用される) が XAML と同期しなくなるという問題もあります。派生ユーザーコントロールで次のエラーが発生してひどい時間を過ごしていたので、これを見つけました:

ローカル プロパティ XXXX は、YYYYYY から派生した型にのみ適用できます。

シャドウ キャッシュは、ユーザー プロファイル ディレクトリにあります。

アプリ データ\Local\Microsoft\VisualStudio\11.0\Designer\ShadowCache

そこにあるものをすべて削除して、VS2012 を再起動できます。その後、物事ははるかにうまく機能しました(少なくともしばらくの間!)

于 2013-11-01T19:42:57.247 に答える
10

ShadowCache内のすべてを削除する

C:\Users\username\AppData\Local\Microsoft\VisualStudio\11.0\Designer\ShadowCache\

コピー&ペースト可能なパス

これらのパスの 1 つを Windows エクスプローラーにコピー アンド ペーストするだけです。%LOCALAPPDATA%Windows 環境変数です。エクスプローラーに入力すると、対応する値に置き換えられます(コマンド プロンプトでも機能します) 。

VS2012

%LOCALAPPDATA% \Microsoft\VisualStudio\11.0\Designer\ShadowCache\

VS2013

%LOCALAPPDATA% \Microsoft\VisualStudio\12.0\Designer\ShadowCache\

VS2015

%LOCALAPPDATA% \Microsoft\VisualStudio\14.0\Designer\ShadowCache\

ASP.NET

ASP.NET を開発する場合も削除します。

%LOCALAPPDATA%\Microsoft\WebsiteCache

%LOCALAPPDATA%\Temp\VWDWebCache

于 2014-04-07T16:53:13.237 に答える
4

これですべてのケースが修正されるかどうかはわかりませんが、これが私にとってうまくいったことです(現在は常に)。

IDE で Blend デザイナーを使用して x64 アプリケーションを構築している VS2012 を使用しています。新しい ICommand を定義して Command 属性を追加すると、デザイナーが x64 でサポートされていませんというエラーが表示されます (正確な警告を忘れてしまいます)。x86 に切り替えると、x64 で何度再ビルドしても、ICommand が認識されない、またはアクセスできないという無効な XAML マークアップ エラーが発生します。x86 に切り替えた場合は、ビルドしてから x64 に戻します。デザイナーの問題ではありません。

今、VS2008 と Blend バージョン 3 および 4 で同様の問題を思い出しました。他の投稿で読んだことから、Any CPU を使用すると問題が解決する可能性もあります。

于 2013-06-14T13:07:18.070 に答える
1

カスタム(パラメーターなし)コンストラクターでコントロールを使用しているときに、同じ問題が発生しました。

カスタム/ユーザー コントロール コンストラクターが、WPF デザイナーにないデータを必要としないかどうかを確認します。try catch、クリーニング、再構築で全体を囲んでいることを確認するのを少し待ってから、問題がソルバーであるかどうかを確認します。

そうでない場合は、デフォルトの WPF Init cod 以外のすべてをコメント化し、クリーンアップし、再構築してテストしてみてください。

于 2013-08-23T19:13:23.307 に答える
1

Visual Studio 2013 では、これは Windows Phone プロジェクト ( http://danielhindrikes.se/visual-studio/workaround-for-invalid-markup-problems-when-developing-for-windows-phone/ ) で使用している回避策です。WPF 用の XAML を作成するときに使用されるのと同じデザイナーだと思います。

Shadow Cache を削除しようとしましたが、Visual Studio を初めて起動したときに機能します。上記の回避策だけが役に立ちました。

于 2014-02-03T20:47:33.433 に答える
1

サポートされていないユーザー コントロールを追加したか、ユーザー コントロールに誤った親子関係を追加した可能性があります。疑わしいユーザー コントロールを削除し、プロジェクトを再構築してみてください。問題を修正する必要があります。乾杯

于 2012-12-02T17:25:17.567 に答える
0

私はちょうど同じ問題を抱えていました (プログラムのコンパイルと実行は正常に行われ、XAML デザイナーは無効なマークアップを報告しました)、問題は、ソリューション内のプロジェクトの 1 つのアセンブリ名を誤って変更したことでした。そのため、ソリューション内の各プロジェクトの [プロパティ] ページを確認し、アセンブリ名が期待どおりであることを確認してください。

于 2013-01-16T11:37:31.233 に答える
0

プロジェクトに問題はないと思いますが、VS 2012 の問題です。VS 2012 の最新の更新プログラム (Update 2) をインストールして、この回答も確認してください。

よろしく、

于 2013-07-10T17:16:39.307 に答える