MarkupCompilePass1 タスク
MarkupCompilePass1 タスクは、ローカライズできない XAML プロジェクト ファイルをコンパイルされたバイナリ形式に変換します。
タスク パラメーター
パラメーター | 説明 |
---|---|
AllGeneratedFiles |
省略可能な ITaskItem[] 型の出力パラメーターです。 MarkupCompilePass1 タスクによって生成されるファイルの完全なリストが含まれています。 |
AlwaysCompileMarkupFilesInSeparateDomain |
省略可能な Boolean 型のパラメーターです。 別の AppDomain でタスクを実行するかどうかを指定します。 このパラメーターが false を返す場合、タスクは MSBuild と同じ AppDomain 内で、より高速に実行されます。 このパラメーターが true を返す場合、タスクは MSBuild から分離された 2 番目の AppDomain 内で実行され、動作はより低速になります。 |
ApplicationMarkup |
省略可能な ITaskItem[] パラメーターです。 アプリケーション定義 XAML ファイルの名前を指定します。 |
AssembliesGeneratedDuringBuild |
省略可能な String[] 型のパラメーターです。 ビルド処理時に変更されるアセンブリへの参照を指定します。 たとえば、Visual Studio ソリューションには、別のプロジェクトのコンパイル済み出力を参照するプロジェクトが含まれていることがあります。 この場合、別のプロジェクトのコンパイル済み出力を 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)、.NET インストール ディレクトリなどにあるアセンブリが含まれます。 |
Language |
必須の String 型のパラメーターです。 コンパイラがサポートするマネージド言語を指定します。 有効なオプションは C#、VB、JScript、C++ です。 |
LanguageSourceExtension |
省略可能な String 型のパラメーターです。 生成されるマネージド コード ファイルの拡張子に追加される拡張子を指定します。 <Filename>.g<LanguageSourceExtension> LanguageSourceExtension パラメーターに特定の値が設定されていない場合、言語に応じた既定のソース ファイル名拡張子が使用されます。つまり、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="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Uid="Page1Uid"
>
...
</Page>
XAML ファイルは、clr-namespace
値を使用して現在のプロジェクトの名前空間を参照する XML 名前空間を宣言している場合、ローカルに定義された型を参照します。
<Page x:Class="WPFMSBuildSample.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://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 つの "ページ" XAML ファイルをバイナリ形式ファイルに変換する方法を次の例に示します。 "ページ 1" には、Class1
という型への参照が含まれます。この型はプロジェクトのルート名前空間内にあるため、このマークアップ コンパイル パスではバイナリ形式ファイルに変換されません。 代わりに、GenerateTemporaryTargetAssembly が実行され、次に MarkupCompilePass2 が実行されます。
<Project xmlns="http://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>