MarkupCompilePass1 タスク
更新 : 2007 年 11 月
MarkupCompilePass1 タスクは、ローカライズできない Extensible Application Markup Language (XAML) プロジェクト ファイルをコンパイル済みバイナリ形式に変換します。
タスク パラメータ
パラメータ |
説明 |
---|---|
AllGeneratedFiles |
省略可能な ITaskItem[] 型の出力パラメータ。 MarkupCompilePass1 タスクによって生成されるファイルの完全な一覧が含まれます。 |
AlwaysCompileMarkupFilesInSeparateDomain |
省略可能な Boolean 型のパラメータ。 タスクを別の AppDomain で実行するかどうかを指定します。このパラメータが false を返す場合、タスクは Microsoft ビルド エンジン (MSBuild) と同じ AppDomain 内で、より高速に実行されます。このパラメータが true を返す場合、タスクは MSBuild から分離された 2 番目の AppDomain 内で実行され、動作はより低速になります。 |
ApplicationMarkup |
省略可能な ITaskItem[] 型のパラメータ。 アプリケーション定義 XAML ファイルの名前を指定します。 |
AssembliesGeneratedDuringBuild |
省略可能な String[] 型のパラメータ。 ビルド処理時に変更されるアセンブリへの参照を指定します。たとえば、Microsoft Visual Studio 2005 ソリューションには、別のプロジェクトのコンパイル済み出力を参照するプロジェクトが含まれていることがあります。この場合、別のプロジェクトのコンパイル済み出力を AssembliesGeneratedDuringBuild パラメータに追加できます。 メモ : AssembliesGeneratedDuringBuild パラメータは、ビルド ソリューションによって生成されるアセンブリの完全なセットへの参照を含んでいる必要があります。 |
AssemblyName |
必須の String 型のパラメータ。 プロジェクトのために生成されるアセンブリの短い名前を指定します。たとえば、プロジェクトが WinExeAssembly.exe という名前の Windows 実行可能ファイルを生成する場合、AssemblyName パラメータの値は WinExeAssembly になります。 |
AssemblyPublicKeyToken |
省略可能な String 型のパラメータ。 アセンブリの公開キー トークンを指定します。 |
AssemblyVersion |
省略可能な String 型のパラメータ。 アセンブリのバージョン番号を指定します。 |
ContentFiles |
省略可能な ITaskItem[] 型のパラメータ。 圧縮しないコンテンツ ファイルの一覧を指定します。 |
DefineConstants |
省略可能な String 型のパラメータ。 DefineConstants の現在の値を保持するように指定します。これはターゲット アセンブリの生成に影響します。このパラメータが変更されると、ターゲット アセンブリ内のパブリック API が変更される可能性があり、ローカル型を参照する XAML ファイルのコンパイルが影響を受けることがあります。 |
ExtraBuildControlFiles |
省略可能な ITaskItem[] 型のパラメータ。 MarkupCompilePass1 タスクを再実行した場合に、リビルドがトリガされるかどうかを制御するファイルの一覧を指定します。これらのファイルのいずれかが変更されると、リビルドがトリガされます。 |
GeneratedBamlFiles |
省略可能な ITaskItem[] 型の出力パラメータ。 XAML バイナリ形式で生成されたファイルの一覧を含みます。 |
GeneratedCodeFiles |
省略可能な ITaskItem[] 型の出力パラメータ。 生成されるマネージ コード ファイルの一覧を含みます。 |
GeneratedLocalizationFiles |
省略可能な ITaskItem[] 型の出力パラメータ。 ローカライズ可能な各 XAML ファイルに対して生成されたローカリゼーション ファイルの一覧を含みます。 |
HostInBrowser |
省略可能な String 型のパラメータ。 生成されるアセンブリが XAML ブラウザ アプリケーション (XBAP) であるかどうかを指定します。有効なオプションは、true および false です。true の場合は、ブラウザのホスト処理をサポートするコードが生成されます。 |
KnownReferencePaths |
省略可能な String[] 型のパラメータ。 ビルド処理時に変更されないアセンブリへの参照を指定します。グローバル アセンブリ キャッシュ (GAC)、Microsoft .NET Framework インストール ディレクトリなどにあるアセンブリが含まれます。 |
Language |
必須の String 型のパラメータ。 コンパイラがサポートするマネージ言語を指定します。有効なオプションは、C#、VB、JScript、J#、および C++ です。 |
LanguageSourceExtension |
省略可能な String 型のパラメータ。 生成されるマネージ コード ファイルの拡張子に追加される拡張子を指定します。 <Filename>.g<LanguageSourceExtension> LanguageSourceExtension パラメータが特定の値に設定されていない場合、言語に応じた既定のソース ファイル名拡張子が使用されます。つまり、Microsoft Visual Basic では .vb になり、C# では .csharp になります。 |
LocalizationDirectivesToLocFile |
省略可能な String 型のパラメータ。 各ソース XAML ファイルのローカリゼーション情報を生成する方法を指定します。有効なオプションは、None、CommentsOnly、および All です。 |
OutputPath |
必須の String 型のパラメータ。 生成されるマネージ コード ファイルおよび XAML バイナリ形式ファイルの出力先ディレクトリを指定します。 |
OutputType |
必須の String 型のパラメータ。 プロジェクトで生成されるアセンブリの型を指定します。有効なオプションは、winexe、exe、library、および netmodule です。 |
PageMarkup |
省略可能な ITaskItem[] 型のパラメータ。 処理する XAML ファイルの一覧を指定します。 |
References |
省略可能な ITaskItem[] 型のパラメータ。 XAML ファイル内で使用される型を含む、ファイルからアセンブリへの参照の一覧を指定します。 |
RequirePass2ForMainAssembly |
省略可能な Boolean 型の出力パラメータ。 メイン アセンブリに埋め込まれるローカル型を参照する、ローカライズできない XAML ファイルがプロジェクトに含まれているかどうかを示します。 |
RequirePass2ForSatelliteAssembly |
省略可能な Boolean 型の出力パラメータ。 メイン アセンブリに埋め込まれるローカル型を参照する、ローカライズ可能な XAML ファイルがプロジェクトに含まれているかどうかを示します。 |
RootNamespace |
省略可能な String 型のパラメータ。 プロジェクト内部にあるクラスのルート名前空間を指定します。RootNamespace は、対応する XAML ファイルが x:Class 属性を含まない場合に、生成されるマネージ コード ファイルの既定の名前空間としても使用されます。 |
SourceCodeFiles |
省略可能な ITaskItem[] 型のパラメータ。 現在のプロジェクトのコード ファイルの一覧を指定します。このリストには、生成される言語固有のマネージ コード ファイルは含まれません。 |
UICulture |
省略可能な String 型のパラメータ。 生成される XAML バイナリ形式ファイルが埋め込まれる UI カルチャのサテライト アセンブリを指定します。UICulture が設定されない場合、生成される XAML バイナリ形式ファイルは、メイン アセンブリに埋め込まれます。 |
XAMLDebuggingInformation |
省略可能な Boolean 型のパラメータ。 true の場合、デバッグを支援するための診断情報が生成され、コンパイルされた XAML 内に追加されます。 |
解説
MarkupCompilePass1 タスクは、通常、XAML をバイナリ形式にコンパイルしてコード ファイルを生成します。同じプロジェクト内で定義される型への参照が XAML ファイルに含まれている場合、MarkupCompilePass1 は、バイナリ形式へのコンパイルを 2 番目のマークアップ コンパイル パス (MarkupCompilePass2) まで延期します。このようなファイルでは、参照しているローカル定義の型がコンパイルされるまで待つ必要があるため、コンパイルを延期する必要があります。ただし、XAML ファイルに x:Class 属性がある場合、MarkupCompilePass1 はこのファイルの言語固有のコード ファイルを生成します。
XAML ファイルに x:Uid 属性を使用する要素が含まれている場合、そのファイルはローカライズ可能です。
<Page x:Class="WPFMSBuildSample.Page1"
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
x:Uid="Page1Uid"
>
...
</Page>
XAML ファイルは、clr-namespace 値を使用して現在のプロジェクトの名前空間を参照する XML 名前空間を宣言している場合、ローカルに定義された型を参照します。
<Page x:Class="WPFMSBuildSample.Page1"
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localNamespace="clr-namespace:WPFMSBuildSample"
>
<Grid>
<Grid.Resources>
<localNameSpace:LocalType x:Key="localType" />
</Grid.Resources>
...
</Grid>
</Page>
いずれかの XAML ファイルがローカライズ可能であるか、またはローカルに定義された型を参照している場合は、2 番目のマークアップ コンパイル パスが必要です。このパスでは、GenerateTemporaryTargetAssembly タスク を実行し、次に MarkupCompilePass2 タスク を実行する必要があります。
使用例
3 つの PageXAML ファイルをバイナリ形式ファイルに変換する方法を次の例に示します。Page1 には、Class1 という型への参照が含まれます。この型はプロジェクトのルート名前空間内にあるため、このマークアップ コンパイル パスではバイナリ形式ファイルに変換されません。代わりに、GenerateTemporaryTargetAssembly タスク が実行され、次に MarkupCompilePass2 タスク が実行されます。
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask
TaskName="Microsoft.Build.Tasks.Windows.MarkupCompilePass1"
AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
<Target Name="MarkupCompilePass1Task">
<MarkupCompilePass1
AssemblyName="WPFMSBuildSample"
Language="C#"
OutputType="WinExe"
OutputPath="obj\Debug\"
ApplicationMarkup="App.xaml"
PageMarkup="Page1.xaml;Page2.xaml;Page3.xaml"
SourceCodeFiles="Class1.cs"
References="c:\windows\Microsoft.net\Framework\v2.0.50727\System.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\PresentationCore.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\PresentationFramework.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\WindowsBase.dll" />
</Target>
</Project>
参照
概念
Windows Presentation Foundation XAML ブラウザ アプリケーションの概要
その他の技術情報
Windows Presentation Foundation MSBuild のリファレンス