Задача AL (компоновщик сборок)

Задача AL включает AL.exe — инструмент, распространяемый с Windows SDK. Этот компоновщик сборок используется для создания сборки с манифестом из одного или нескольких файлов, являющихся модулями или файлами ресурсов. Компиляторы и среды разработки обеспечивают указанные возможности, в связи с чем необходимость в непосредственном использовании этого задания возникает достаточно редко. Компоновщик сборок особенно полезен, если нужно создать единую сборку из нескольких файлов компонентов, например при разработке на нескольких языках. Эта задача не объединяет модули в один файл сборки. Отдельные модули должны оставаться распределенными и доступными для правильной загрузки результирующей сборки. Дополнительные сведения об инструменте AL.exe см. в статье Al.exe (компоновщик сборок).

Параметры

В следующей таблице приводятся параметры задачи AL.

Параметр Описание
AlgorithmID Необязательный параметр String.

Задает алгоритм хэширования всех файлов многофайловой сборки, кроме файла, содержащего манифест сборки. Дополнительные сведения см. в документации по параметру /algid в статье Al.exe (компоновщик сборок).
BaseAddress Необязательный параметр String.

Задает адрес для загрузки библиотеки DLL на компьютер пользователя во время выполнения. Приложения загружаются быстрее, если задан базовый адрес DLL и операционная система не перемещает библиотеки в пространстве процесса. Этот параметр соответствует свойству /baseaddress.
CompanyName Необязательный параметр String.

Задает строковое значение поля Company в сборке. Дополнительные сведения см. в документации по параметру /comp[any] в статье Al.exe (компоновщик сборок).
Configuration Необязательный параметр String.

Задает строковое значение поля Configuration в сборке. Дополнительные сведения см. в документации по параметру /config[uration] в статье Al.exe (компоновщик сборок).
Copyright Необязательный параметр String.

Задает строковое значение поля Copyright в сборке. Дополнительные сведения см. в документации по параметру /copy[right] в статье Al.exe (компоновщик сборок).
Culture Необязательный параметр String.

Задает строковое значение языка и региональных параметров для связывания со сборкой. Дополнительные сведения см. в документации по параметру /c[ulture] в статье Al.exe (компоновщик сборок).
DelaySign Необязательный параметр Boolean.

Задайте значение true, чтобы разместить в сборке только открытый ключ, или false, чтобы полностью подписать сборку. Дополнительные сведения см. в документации по параметру /delay[sign] в статье Al.exe (компоновщик сборок).
Description Необязательный параметр String.

Задает строковое значение поля Description в сборке. Дополнительные сведения см. в документации по параметру /descr[iption] в статье Al.exe (компоновщик сборок).
EmbedResources Необязательный параметр ITaskItem[].

Внедряет указанные ресурсы в образ, содержащий манифест сборки. Эта задача копирует содержимое файла ресурсов в образ. Элементы, передаваемые в этот параметр, могут иметь вложенные необязательные метаданные LogicalName и Access. Метаданные LogicalName используются для указания внутреннего идентификатора ресурса. Для метаданных Access можно задать значение private, чтобы сделать данный ресурс невидимым для других сборок. Дополнительные сведения см. в документации по параметру /embed[resource] в статье Al.exe (компоновщик сборок).
EvidenceFile Необязательный параметр String.

Внедряет указанный файл в сборку с именем ресурса Security.Evidence.

Использовать имя Security.Evidence для обычных ресурсов нельзя. Этот параметр соответствует параметру /e[vidence] в статье Al.exe (компоновщик сборок).
ExitCode Необязательный выходной параметр Int32, доступный только для чтения.

Определяет код выхода, возвращаемый выполняемой командой.
FileVersion Необязательный параметр String.

Задает строковое значение поля File Version в сборке. Дополнительные сведения см. в документации по параметру /fileversion в статье Al.exe (компоновщик сборок).
Flags Необязательный параметр String.

Задает значение для поля Flags в сборке. Дополнительные сведения см. в документации по параметру /flags в статье Al.exe (компоновщик сборок).
GenerateFullPaths Необязательный параметр Boolean.

Указывает, что в задаче должны использоваться абсолютные пути для всех файлов, имена которых присутствуют в сообщении об ошибке. Этот параметр соответствует параметру /fullpaths в статье Al.exe (компоновщик сборок).
KeyContainer Необязательный параметр String.

Задает контейнер, хранящий пару ключей. При этом сборка (ей следует присвоить строгое имя) будет подписана путем вставки открытого ключа в манифест сборки. Затем задача подпишет окончательную сборку с помощью закрытого ключа. Дополнительные сведения см. в документации по параметру /keyn[ame] в статье Al.exe (компоновщик сборок).
KeyFile Необязательный параметр String.

Задает файл, содержащий пару ключей или только открытый ключ для подписывания сборки. Компилятор вставляет открытый ключ в манифест сборки, а затем подписывает окончательную сборку закрытым ключом. Дополнительные сведения см. в документации по параметру /keyf[ile] в статье Al.exe (компоновщик сборок).
LinkResources Необязательный параметр ITaskItem[].

Связывает указанные файлы ресурсов со сборкой. Ресурс становится частью сборки, но файл не копируется. Элементы, передаваемые в этот параметр, могут иметь вложенные необязательные метаданные LogicalName, Target и Access. Метаданные LogicalName используются для указания внутреннего идентификатора ресурса. Метаданные Target указывают путь и имя файла, в который задача копирует файл, после чего этот новый файл компилируется в сборку. Для метаданных Access можно задать значение private, чтобы сделать данный ресурс невидимым для других сборок. Дополнительные сведения см. в документации по параметру /link[resource] в статье Al.exe (компоновщик сборок).
MainEntryPoint Необязательный параметр String.

Задает полное имя (класс.метод) метода, являющегося точкой входа при преобразовании модуля в исполняемый файл. Этот параметр соответствует параметру /main в статье Al.exe (компоновщик сборок).
OutputAssembly Необязательный выходной параметр ITaskItem.

Указывает имя файла, создаваемого этой задачей. Этот параметр соответствует параметру /out в статье Al.exe (компоновщик сборок).
Platform Необязательный параметр String.

Ограничивает возможности выполнения кода одной из следующих платформ: x86, Itanium, x64 или anycpu. Значение по умолчанию — anycpu. Этот параметр соответствует параметру /platform в статье Al.exe (компоновщик сборок).
ProductName Необязательный параметр String.

Задает строковое значение поля Product в сборке. Дополнительные сведения см. в документации по параметру /prod[uct] в статье Al.exe (компоновщик сборок).
ProductVersion Необязательный параметр String.

Задает строковое значение поля ProductVersion в сборке. Дополнительные сведения см. в документации по параметру /productv[ersion] в статье Al.exe (компоновщик сборок).
ResponseFiles Необязательный параметр String[].

Указывает файлы ответов, содержащие дополнительные параметры для прохождения к компоновщику сборок.
SdkToolsPath Необязательный параметр String.

Указывает путь к средствам пакета SDK, например resgen.exe.
SourceModules Необязательный параметр ITaskItem[].

Один или несколько модулей для компиляции в сборку. Модули будут перечислены в манифесте результирующей сборки. Они должны будут оставаться распределенными и доступными для загрузки сборки. Элементы, передаваемые в этот параметр, могут иметь вложенные необязательные метаданные Target, указывающие путь и имя файла, в который задача копирует файл, после чего этот новый файл компилируется в сборку. Дополнительные сведения см. в документации по Al.exe (компоновщик сборок). Этот параметр соответствует списку модулей, передаваемому в Al.exe без определенного параметра.
TargetType Необязательный параметр String.

Задает формат выходного файла: library (библиотека кода), exe (консольное приложение) или win (приложение Windows). Значение по умолчанию — library. Этот параметр соответствует параметру /t[arget] в статье Al.exe (компоновщик сборок).
TemplateFile Необязательный параметр String.

Указывает сборку, от которой требуется унаследовать все метаданные сборки, кроме поля языка и региональных параметров. Указанная сборка должна иметь строгое имя.

Сборка, созданная с использованием параметра TemplateFile, будет вспомогательной. Этот параметр соответствует параметру /template в статье Al.exe (компоновщик сборок).
Timeout Необязательный параметр Int32.

Задает промежуток времени в миллисекундах, после которого исполняемый файл задачи прекращается. Значение по умолчанию — Int.MaxValue. Оно указывает, что период ожидания отсутствует.
Title Необязательный параметр String.

Задает строковое значение поля Title в сборке. Дополнительные сведения см. в документации по параметру /title в статье Al.exe (компоновщик сборок).
ToolPath Необязательный параметр String.

Указывает расположение, из которого задача будет загружать базовый исполняемый файл (Al.exe). Если этот параметр не задан, задача использует путь установки пакета SDK, соответствующий версии платформы, на которой выполняется MSBuild.
Trademark Необязательный параметр String.

Задает строковое значение поля Trademark в сборке. Дополнительные сведения см. в документации по параметру /trade[mark] в статье Al.exe (компоновщик сборок).
Version Необязательный параметр String.

Указывает сведения о версии для определенной сборки. Формат строки: основной_номер_версии.дополнительный_номер_версии.сборка.редакция. Значение по умолчанию равно 0. Дополнительные сведения см. в документации по параметру /v[ersion] в статье Al.exe (компоновщик сборок).
Win32Icon Необязательный параметр String.

Внедряет в сборку ICO-файл. ICO-файл является изображением значка выходного файла в проводнике. Этот параметр соответствует параметру /win32icon в статье Al.exe (компоновщик сборок).
Win32Resource Необязательный параметр String.

Вставляет файл ресурсов Win32 (RES-файл) в выходной файл. Дополнительные сведения см. в документации по параметру /win32res в статье Al.exe (компоновщик сборок).

Параметры ToolTaskExtension

Эта задача наследуется от класса ToolTaskExtension, который наследуется от класса ToolTask, который, в свою очередь, наследуется от класса Task. Эта цепочка наследования добавляет несколько параметров в задачи, которые от них происходят.

В следующей таблице описываются параметры базовых классов:

Параметр Описание
EchoOff Необязательный параметр bool.

Если задано значение true, то задача передает /Q в командную строку cmd.exe и командная строка не копируется в stdout.
EnvironmentVariables Необязательный параметр массива String.

Массив определений переменных среды, разделенных точкой с запятой. Каждое определение должно содержать имя и значение переменной среды, разделенные знаком равенства. Эти переменные частично передаются в порожденный исполняемый файл, дополняя или выборочно переопределяя обычный блок среды. Например, Variable1=Value1;Variable2=Value2.
ExitCode Необязательный выходной параметр Int32, доступный только для чтения.

Задает код выхода, предоставляемый выполняемой командой. Если задача зарегистрировала какие-либо ошибки, но процесс имеет код выхода 0 (успешное завершение), этот параметр имеет значение -1.
LogStandardErrorAsError Необязательный параметр bool.

Если он имеет значение true, то все сообщения, полученные в стандартном потоке ошибок, регистрируются как ошибки.
StandardErrorImportance Необязательный параметр String.

степень важности, с которой текст из стандартного потока ошибок следует регистрировать в журнале.
StandardOutputImportance Необязательный параметр String.

Степень важности, с которой текст из стандартного выходного потока следует регистрировать в журнале.
Timeout Необязательный параметр Int32.

Задает промежуток времени в миллисекундах, после которого исполняемый файл задачи прекращается. Значение по умолчанию — Int.MaxValue. Оно указывает, что период ожидания отсутствует. Время ожидания в миллисекундах.
ToolExe Необязательный параметр string.

Он может реализовываться в проектах для переопределения параметра ToolName. Задачи могут переопределять его для сохранения параметра ToolName.
ToolPath Необязательный параметр string.

Указывает расположение, откуда задача загружает базовый исполняемый файл. Если этот параметр не задан, задача использует путь установки пакета SDK, соответствующий версии платформы, на которой выполняется MSBuild.
UseCommandProcessor Необязательный параметр bool.

Если задано значение true, эта задача создает пакетный файл для командной строки и выполняет его с помощью командного процессора вместо непосредственного выполнения команды.
YieldDuringToolExecution Необязательный параметр bool.

Если задано значение true, эта задача создает узел при выполнении его задачи.

Пример

В следующем примере создается сборка с заданными параметрами.

<AL
    EmbedResources="@(EmbeddedResource)"
    Culture="%(EmbeddedResource.Culture)"
    TemplateFile="@(IntermediateAssembly)"
    KeyContainer="$(KeyContainerName)"
    KeyFile="$(KeyOriginatorFile)"
    DelaySign="$(DelaySign)"

    OutputAssembly=
       "%(EmbeddedResource.Culture)\$(TargetName).resources.dll">

    <Output TaskParameter="OutputAssembly"
        ItemName="SatelliteAssemblies"/>
</AL>

См. также