2016-05-01 11 views

答えて

2

MarkupCompilePass1は、PartialClassGenerationTaskを使用して、すべてのXAMLファイルの部分クラスを生成します。

WPFパイプラインはかなり複雑で、WPFアプリケーションをコンパイルするときには多くの可動部品があります。

PartialClassGenerationTaskは、タイプを指定し、x:ClassのXAMLファイルに対して特に機能します。これらの問題が発生すると、タスクは一致するcsまたはvbコードファイルを生成し、C#/ VBコンパイラは後でそのクラスとそのプロパティを参照できます。

タスクタスクは、テキストベースのXAMLファイルをバイナリBAML形式に変換します。他のプロジェクトや参照されているアセンブリで定義された型だけを参照するすべてのXAMLファイルをコンパイルします。

MarkupCompilePass2タスクはPass 1をフォローし、同じプロジェクトのコードをBAMLに参照するXAMLファイルを具体的にコンパイルします。

XAMLプロジェクトのコンパイルを高速化するには、2番目のプロジェクト(標準クラスライブラリ)で型を定義する方がよいでしょう。そうすれば、MarkupCompilePass2はスキップできます。

フルWPFは、パイプラインを構築するにはMSDNで説明されています。その詳細な説明とリンクについて

+0

感謝を! – BendEg

+0

'csまたはVBコードファイルを使用して、C#/ VBコンパイラがクラスとそのプロパティを後で参照できるようにしました。 'xamlをコンパイルして部分クラスを作成しますが、プロパティは作成されません。ここにヒントはありますか? – BendEg

+0

あなたは何をしているのかよく分かりません。コンパイル時に部分クラスが生成されます。 xamlプロジェクトの 'obj'フォルダを調べることで、何が生成されているのかを見ることができます。あなたの*クラスが部分クラスで、同じ名前空間とクラス名を指定していない限り、それらは一致しません。 – jessehouwing

関連する問題