MarkupCompilePass2 - задача
Задача MarkupCompilePass2 выполняет второй проход компиляции разметки на файлах XAML, которые ссылаются на типы в том же проекте.
Параметры задачи
Параметр | Описание |
---|---|
AlwaysCompileMarkupFilesInSeparateDomain |
Необязательный параметр Boolean . Указывает, следует ли запускать задачу в отдельном AppDomain. Если этот параметр возвращает false, задача выполняется в том же AppDomain, что и MSBuild. Это позволяет выполнить задачу быстрее. Если этот параметр возвращает значение true, то задача выполняется во втором AppDomain, который изолирован от MSBuild и работает медленнее. |
AssembliesGeneratedDuringBuild |
Необязательный параметр типа String[]. Задает ссылки на сборки, которые изменяются в процессе сборки. Например, решение Visual Studio может содержать один проект, который ссылается на выходные данные компиляции другого проекта. В этом случае выходные данные компиляции второго проекта можно добавить в AssembliesGeneratedDuringBuild. Примечание. Элемент AssembliesGeneratedDuringBuild должен содержать ссылки на полный набор сборок, созданных решением сборки. |
AssemblyName |
Обязательный параметр string. Задает короткое имя сборки, которая создается для проекта. Например, если проект создает исполняемый файл с именем WinExeAssembly.exe, то параметр AssemblyName имеет значение WinExeAssembly. |
GeneratedBaml |
Необязательный параметр вывода ITaskItem[]. Содержит список созданных файлов в двоичном формате XAML. |
KnownReferencePaths |
Необязательный параметр типа String[]. Задает ссылки на сборки, которые не изменяются в процессе сборки. Сюда включаются сборки, расположенные в глобальном кэше сборок, в каталоге установки .NET и т. д. |
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="http://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>