Задача MarkupCompilePass2
Задача MarkupCompilePass2 выполняет компиляцию разметки второго прохода на Язык XAML (Extensible Application Markup Language) файлах, ссылочные типы которых имеются в том же проекте.
Параметры задачи
Параметр |
Описание |
---|---|
AlwaysCompileMarkupFilesInSeparateDomain |
Необязательный логический параметр Boolean. Определяет то, выполняется ли задача в отдельном AppDomain. Если этот параметр возвращает значение false, то задача выполняется в том же самом AppDomain как и MSBuild (Microsoft build engine), и выполняется быстрее. Если этот параметр возвращает значение true, то задача выполняется во втором AppDomain, который изолирован от MSBuild и работает медленнее. |
AssembliesGeneratedDuringBuild |
Дополнительный параметр String[]. Задает ссылки на сборки, которые изменяются в процессе компоновки. Например, решение Microsoft Visual Studio 2005 может содержать один проект, который ссылается на выходные данные компиляции другого проекта. В этом случае скомпилированный результат второго проекта можно добавить к AssembliesGeneratedDuringBuild. Примечание: объект AssembliesGeneratedDuringBuild должен содержать ссылки на полный комплект, которые созданы в соответствии с решением построения. |
AssemblyName |
Обязательный параметр String. Задает короткое имя сборки, которая создается для проекта. Например, если проект создает исполняемый файл Microsoft Windows с именем WinExeAssembly.exe, то параметр AssemblyName имеет значение WinExeAssembly. |
GeneratedBaml |
Необязательный выходной параметр ITaskItem[]. Содержит список созданных файлов в двоичном формате Язык XAML. |
KnownReferencePaths |
Дополнительный параметр String[]. Задает ссылки на сборки, которые никогда не изменяются в процессе компоновки. Включает сборки, которые находятся в GAC (global assembly cache — глобальный кэш сборок), в каталоге установки Microsoft .NET Framework и т. д. |
Language |
Обязательный параметр String. Задает управляемый язык, который поддерживает компилятор. Допустимые значения: C#" VB" JScriptи C++. |
LocalizationDirectivesToLocFile |
Необязательный параметр String. Определение того, как создать информацию о локализации для каждого исходного файла Язык XAML. Разрешенными параметрами являются None, CommentsOnly и All. |
OutputPath |
Обязательный параметр String. Указывает папку, в которой создаются файлы двоичного формата для созданного Язык XAML. |
OutputType |
Обязательный параметр String. Задает тип сборки, которая создается проектом. Разрешенными параметрами являются winexe, exe, library и netmodule. |
References |
Необязательный параметр ITaskItem[]. Задает список содержащихся в файлах ссылок на сборки, которые содержат типы, используемые в файлах Язык XAML. Одна ссылка это ссылка на сборку, созданную задачей GenerateTemporaryTargetAssembly, которая должна выполняться перед задачей MarkupCompilePass2. |
RootNamespace |
Необязательный параметр String. Задает корневое пространство имен для классов, имеющихся внутри проекта. RootNamespace также используется как пространство имен по умолчанию созданного файла управляемого кода, когда соответствующий файл Язык XAML не включает атрибут x:Class. |
XAMLDebuggingInformation |
Необязательный логический параметр Boolean. Когда присвоено значение true, создается диагностическая информация, которая включается в откомпилированный Язык XAML, чтобы способствовать отладке. |
Заметки
Перед запуском MarkupCompilePass2 вы должны создать временную сборку, содержащую типы, которые используются файлами Язык XAML, чья метка прохода компиляции разметки была отложена. Временная сборка создается запуском задачи GenerateTemporaryTargetAssembly.
Ссылка на созданную временную сборку передается файлам MarkupCompilePass2, когда они выполняются, позволяя файлам Язык XAML, компиляция которых была отложена при первом проходе процесса компиляции, быть скомпилированными в двоичный формат.
Пример
Следующий пример показывает, как использовать задачу MarkupCompilePass2 для выполнения второго прохода компиляции.
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask
TaskName="Microsoft.Build.Tasks.Windows.MarkupCompilePass2"
AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
<Target Name="MarkupCompilePass2Task">
<MarkupCompilePass2
AssemblyName="WPFMSBuildSample"
Language="C#"
OutputType="WinExe"
OutputPath="obj\Debug\"
References=".\obj\debug\WPFMSBuildSample.exe;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>
См. также
Основные понятия
Общие сведения о приложениях браузера WPF XAML
Другие ресурсы
Справочные сведения о WPF для MSBuild