Поделиться через


Задача GenerateTemporaryTargetAssembly

Задача GenerateTemporaryTargetAssembly создает сборку, если хотя бы одна страница Язык XAML (Extensible Application Markup Language) в проекте ссылается на тип, объявленный в этом проекте локально. Созданная сборка удаляется после завершения или сбоя процесса построения.

Параметры задачи

Параметр

Описание

AssemblyName

Обязательный параметр String.

Задание короткого имени сборки, созданной для проекта, которое также является именем временно создаваемой конечной сборки. Например, если проект создает исполняемый файл Windows с именем WinExeAssembly.exe, то параметр AssemblyName имеет значение WinExeAssembly.

CompileTargetName

Обязательный параметр String.

Указание имени целевого объекта MSBuild (Microsoft build engine), используемого для создания сборок из файлов исходного кода. CompileTargetName обычно имеет значение CoreCompile.

CompileTypeName

Обязательный параметр String.

Указание типа компиляции, выполняемой целевым объектом, заданным с помощью параметра CompileTargetName. Для целевого объекта CoreCompile используется значение Compile.

CurrentProject

Обязательный параметр String.

Указание полного пути к файлу проекта MSBuild для проекта, которому требуется создание временной конечной сборки.

GeneratedCodeFiles

Необязательный параметр ITaskItem[].

Задание списка файлов управляемого кода для конкретного языка, созданных задачей Задача MarkupCompilePass1.

IntermediateOutputPath

Обязательный параметр String.

Задание каталога, в котором создается временная конечная сборка.

MSBuildBinPath

Обязательный параметр String.

Указание расположения файла MSBuild.exe, необходимого для компиляции временной конечной сборки.

ReferencePath

Необязательный параметр ITaskItem[].

Задание списка сборок с указанием пути и имени файла, на которые ссылаются типы, скомпилированные во временную конечную сборку.

ReferencePathTypeName

Обязательный параметр String.

Указание параметра, используемого параметром целевого объекта компиляции (CompileTargetName), который задает список ссылок на сборку (ReferencePath). Допустимым значением является ReferencePath.

Заметки

Во время первого прохода компиляции разметки, запущенного задачей Задача MarkupCompilePass1, файлы Язык XAML компилируются в двоичный формат. Следовательно, компилятору необходим список сборок, на которые имеются ссылки и которые содержат типы, используемые файлами Язык XAML. Однако, если файл Язык XAML использует тип, заданный в том же проекте, соответствующая сборка для этого проекта не создается до построения проекта. Таким образом, ссылку на сборку нельзя предоставить во время первого прохода компиляции разметки.

Вместо этого задача MarkupCompilePass1 откладывает преобразование файлов Язык XAML, содержащих ссылки на типы того же проекта, до второго прохода компиляции разметки, который выполняется задачей Задача MarkupCompilePass2. Перед выполнением задачи MarkupCompilePass2 создается временная сборка. Эта сборка содержит типы, которые используются файлами Язык XAML, для которых был отложен проход компиляции разметки. Ссылка на созданную сборку передается задаче MarkupCompilePass2, когда она выполняется, позволяя файлам Язык XAML, компиляция которых была отложена, быть скомпилированными в двоичный формат.

Пример

В следующем примере создается временная сборка, так как Page1.xaml содержит ссылку на тип, заданный в том же проекте.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask
    TaskName="Microsoft.Build.Tasks.Windows.GenerateTemporaryTargetAssembly" 
    AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
  <Target Name="GenerateTemporaryTargetAssemblyTask">
    <GenerateTemporaryTargetAssembly
      AssemblyName="WPFMSBuildSample"
      CompileTargetName="CoreCompile"
      CompileTypeName="Compile"
      CurrentProject="FullBuild.proj"
      GeneratedCodeFiles="obj\debug\app.g.cs;obj\debug\Page1.g.cs;obj\debug\Page2.g.cs"
      ReferencePath="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"
      IntermediateOutputPath=".\obj\debug\"
      MSBuildBinPath="$(MSBuildBinPath)"
      ReferencePathTypeName="ReferencePath"/>
  </Target>
</Project>

См. также

Основные понятия

Построение приложения WPF

Общие сведения о приложениях браузера WPF XAML

Другие ресурсы

Справочные сведения о WPF для MSBuild

Справочные сведения о задачах WPF для MSBuild

Справочные сведения о MSBuild

Справочные сведения о задачах MSBuild