AL(程序集链接器)任务

AL 任务包装 AL.exe,后者是随 Windows 软件开发包 (SDK) 一起分发的工具。 使用此程序集链接器工具,可以基于一个或多个文件(这些文件作为模块或资源文件)创建带有清单的程序集。 编译器和开发环境可能已经提供了这些功能,因此通常没有必要直接使用此任务。 对于需要从多个组件文件(比如可能用混合语言开发产生的文件)创建单个程序集的开发人员,程序集链接器最为有用。 此任务不会将模块合并到一个程序集文件中;为了使生成的程序集能够正确加载,各个模块必须仍然是分布式的和可用的。 有关 AL.exe 的更多信息,请参见 Al.exe(程序集链接器)

参数

下表描述了 AL 任务的参数。

Parameter

说明

AlgorithmID

可选 String 参数。

指定一种算法以散列多文件程序集中的所有文件,包含程序集清单的文件除外。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /algid 选项的文档。

BaseAddress

可选 String 参数。

指定地址,DLL 将在运行时加载到用户计算机上的该地址。 如果指定 DLL 的基址,而不是让操作系统在进程空间重新定位 DLL,应用程序的加载就会快一些。 此参数对应于 Al.exe(程序集链接器) 中的 /base[address] 选项。

CompanyName

可选 String 参数。

为程序集中的 Company 字段指定一个字符串。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /comp[any] 选项的文档。

Configuration

可选 String 参数。

为程序集中的 Configuration 字段指定一个字符串。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /config[uration] 选项的文档。

Copyright

可选 String 参数。

为程序集中的 Copyright 字段指定一个字符串。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /copy[right] 选项的文档。

Culture

可选 String 参数。

指定要与程序集相关联的区域性字符串。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /c[ulture] 选项的文档。

DelaySign

可选 Boolean 参数。

如果此参数为 true,则只将公钥放置在程序集中;如果此参数为 false,将对程序集进行完整签名。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /delay[sign] 选项的文档。

Description

可选 String 参数。

为程序集中的 Description 字段指定一个字符串。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /descr[iption] 选项的文档。

EmbedResources

可选 ITaskItem[] 参数。

将指定的资源嵌入到包含程序集清单的图像中。 此任务将资源文件中的内容复制到该图像中。 传入到此参数中的项可以在自身附加可选元数据 LogicalNameAccessLogicalName 元数据用于为资源指定内部标识符。 为了使该资源对其他程序集不可见,可以将 Access 元数据设置为 private。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /embed[resource] 选项的文档。

EvidenceFile

可选 String 参数。

将指定文件以资源名称 Security.Evidence 嵌入到程序集中。

不能对常规资源使用 Security.Evidence。 此参数对应于 Al.exe(程序集链接器) 中的 /e[vidence] 选项。

ExitCode

可选 Int32 只读输出参数。

指定由执行的命令提供的退出代码。

FileVersion

可选 String 参数。

为程序集中的 File Version 字段指定一个字符串。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /fileversion 选项的文档。

Flags

可选 String 参数。

为程序集中的 Flags 字段指定一个值。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /flags 选项的文档。

GenerateFullPaths

可选 Boolean 参数。

使任务对错误消息中报告的所有文件使用绝对路径。 此参数对应于 Al.exe(程序集链接器) 中的 /fullpaths 选项。

KeyContainer

可选 String 参数。

指定保存密钥对的容器。 这样将会通过将公钥插入程序集清单来对程序集签名(为它指定一个强名称)。 然后,该任务将使用私钥对最终的程序集进行签名。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /keyn[ame] 选项的文档。

KeyFile

可选 String 参数。

指定文件,该文件包含密钥对,或只包含用于对程序集进行签名的公钥。 编译器在程序集清单中插入公钥,然后使用私钥对最终的程序集进行签名。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /keyf[ile] 选项的文档。

LinkResources

可选 ITaskItem[] 参数。

将指定的资源文件链接至某个程序集。 资源成为程序集的一部分,但不复制该文件。 传入到此参数中的项可以在自身附加可选元数据 LogicalNameTargetAccessLogicalName 元数据用于为资源指定内部标识符。 Target 元数据可以指定任务应将该文件复制到哪个路径和文件名,复制完成后,任务会将此新文件编译到程序集中。 为了使该资源对其他程序集不可见,可以将 Access 元数据设置为 private。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /link[resource] 选项的文档。

MainEntryPoint

可选 String 参数。

指定方法的完全限定名称 (class.method),以用作将模块转换为可执行文件时的入口点。 此参数对应于 Al.exe(程序集链接器) 中的 /main 选项。

OutputAssembly

必选 ITaskItem 输出参数。

指定此任务生成的文件的名称。 此参数对应于 Al.exe(程序集链接器) 中的 /out 选项。

Platform

可选 String 参数。

限制可以运行此代码的平台;必须是 x86Itaniumx64anycpu 之一。 默认值为 anycpu。 此参数对应于 Al.exe(程序集链接器) 中的 /platform 选项。

ProductName

可选 String 参数。

为程序集中的 Product 字段指定一个字符串。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /prod[uct] 选项的文档。

ProductVersion

可选 String 参数。

为程序集中的 ProductVersion 字段指定一个字符串。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /productv[ersion] 选项的文档。

ResponseFiles

可选 String[] 参数。

指定包含要传递到程序集链接器的其他选项的响应文件。

SdkToolsPath

可选 String 参数。

指定 SDK 工具的路径,如 resgen.exe。

SourceModules

可选 ITaskItem[] 参数。

要编译到程序集中的一个或多个模块。 这些模块将在生成的程序集的清单中列出。为了使程序集能够加载,这些模块必须仍然是分布式的和可用的。 传入到此参数中的项可以具有额外的 Target 元数据,该元数据指定任务应将该文件复制到哪个路径和文件名,复制完成后,任务会将此新文件编译到程序集中。 有关更多信息,请参见有关 Al.exe(程序集链接器) 的文档。 此参数对应于不使用特定开关而传入到 Al.exe 中的模块列表。

TargetType

可选 String 参数。

指定输出文件的文件格式:library(代码库)、exe(控制台应用程序)或 win(基于 Windows 的应用程序)。 默认值为 library。 此参数对应于 Al.exe(程序集链接器) 中的 /t[arget] 选项。

TemplateFile

可选 String 参数。

指定程序集,除区域性字段之外的所有程序集元数据都从该程序集继承。 指定的程序集必须具有强名称。

使用 TemplateFile 参数创建的程序集将是附属程序集。 此参数对应于 Al.exe(程序集链接器) 中的 /template 选项。

Timeout

可选 Int32 参数。

指定在多少毫秒后终止任务可执行文件。 默认值为 Int.MaxValue,这表示没有超时期限。

Title

可选 String 参数。

为程序集中的 Title 字段指定一个字符串。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /title 选项的文档。

ToolPath

可选 String 参数。

指定任务将从什么位置加载基础可执行文件 (Al.exe)。 如果未指定此参数,任务将使用与运行 MSBuild 的 Framework 版本对应的 SDK 安装路径。

Trademark

可选 String 参数。

为程序集中的 Trademark 字段指定一个字符串。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /trade[mark] 选项的文档。

Version

可选 String 参数。

指定此程序集的版本信息。 字符串的格式为 major.minor.build.revision。 默认值为 0。 有关更多信息,请参见有关Al.exe(程序集链接器) 中的 /v[ersion] 选项的文档。

Win32Icon

可选 String 参数。

在程序集中插入 .ico 文件。 .ico文件生成输出文件在文件Explorer所需的外观。 此参数对应于 Al.exe(程序集链接器) 中的 /win32icon 选项。

Win32Resource

可选 String 参数。

在输出文件中插入 Win32 资源(.res 文件)。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /win32res 选项的文档。

备注

除了上面列出的参数,此任务还将从 ToolTaskExtension 类继承参数,此类本身从 ToolTask 类继承。 有关这些附加参数及其说明的列表,请参见 ToolTaskExtension 基类

示例

下面的示例使用指定的选项创建程序集。

<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>

请参见

概念

MSBuild 任务

其他资源

MSBuild 任务参考