0

現在、私の XAML エディター ビューでは、それぞれ約 3 秒の発作エピソードが頻繁に発生しています。その理由をカスタム名前空間に絞り込むことができました。

デフォルトでは、私のページには 2 つのデフォルトの XMLNS 宣言があります。

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</Page>

これは正常に機能し、つかむことはありません。ただし、アプリケーション内のコントロールに XMLNS を追加するとすぐに、制御が停止し始めます。

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    
    xmlns:controls="clr-namespace:MyNamespace.Controls">
</Page>

その名前空間だけに固有のものではありません。さまざまな名前空間の組み合わせを試しました。基本的に、MY 名前空間の 1 つを指す XMLNS は、この問題を引き起こします。この問題を診断する方法がよくわかりません。ポインタはありますか?

解決

私たちは解決策を見つけました。サイズが約 7 MB の Microsoft アセンブリ (Web ブラウザー用の ACtiveX のもの) への参照がありました。削除すると、すべてが高速化されました。現在、そのアセンブリを抽象化してランタイム フォルダーに存在できるようにする方法を検討していますが、プロジェクトから参照する必要はありません。皆さんのアイデアに感謝します。

4

4 に答える 4

1

まず、VisualStudio内で引用符を閉じるとどうなるかを確認する必要があります。これは単なるプログラムです(ただし、優れたプログラムです)。デバッグ/プロファイルします。

  • 追加のプラグインがインストールされていますか?それらをオフにします。
  • Intellisenseをオフにします。
  • MS Expression Blendはどうなりますか?つかみますか?
  • すべてのウイルス対策をオフにします。
  • プロセスモニターを実行し、VSで何が起こるかを追跡します。ファイル名/レジストリキーの解決にエラーはありますか?
  • 何も役に立たない場合は、VisualStudioプロセスでプロファイラーを使用してください。
  • 何も役に立たなかった場合は、StackOverflowに質問を書いてください。おー。持続する。あなたはすでにこれをしました。さらなる応答を待ちましょう:)!

乾杯!

于 2009-09-28T16:53:15.867 に答える
0

これは、何かを探しているか、コードを再コンパイルしている可能性があります。

出力タグを選択してコンパイル アクティビティを表示し、次にサイズが大きくなったときにそれが実行されているかどうかを確認します。

一部のプロジェクトでは、プログラムを終了する代わりにデバッグ停止ボタンを押してデバッグ モードを終了すると、この動作が発生します。

また、WPF で DataGrid コントロールを使用すると Visual Studio がハングするというバグがいくつか報告されており、これに関連している可能性があります。ここにいくつかあります:

http://wpf.codeplex.com/WorkItem/View.aspx?WorkItemId=10542 https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=420621

于 2009-09-24T19:57:47.993 に答える
0

リアルタイムのウイルス スキャナを実行していますか? これらは、VS がコードをコンパイルする必要があるときに、パフォーマンスの低下を引き起こすことがよくあります...

于 2009-09-28T15:49:50.737 に答える
0

もっともらしい推測は、この動作は、clr-namespace で宣言されたノードにIntellisenseを提供しようとする VS の XAML エディターの試みに関連しているということです。これは、clr-namespaces と他のタイプの名前空間との違いの 1 つです (これにより、URI は単に一意の文字列として解釈されますが、基礎となる XML 言語の定義をアサートする試みは行われません)。

考えられる回避策は、xaml 編集段階で偽の URI の下に xmlns プレフィックスを定義し (したがって、IntelliSense からのヒントを忘れて)、プロジェクトの他の段階で適切な clr-namespace に戻すことです。

また、名前空間宣言に assembly=xxxx を追加すると、状況が改善される場合があります。問題のアセンブリが現在のアプリケーションのアセンブリであっても、これにより、エディターと関連する IntelliSense がためらうことがなくなります。

直観に反するもう 1 つの回避策は、これらのコントロールをのアセンブリに配置することです。これにより、Intellisense がソース コードから型構造を動的に推測しようとする試みからシステムを守ることができます。変更など(それがそうしようとしていることはわかりませんが、ツールが非常にインテリジェントになることがありますが、説明した種類のCPUまたはI / Oブロックが発生します。

于 2009-09-30T03:38:43.480 に答える