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[] 参数。 将指定的资源嵌入到包含程序集清单的图像中。 此任务将资源文件中的内容复制到该图像中。 传入到此参数中的项可以在自身附加可选元数据 LogicalName 和 Access。 LogicalName 元数据用于为资源指定内部标识符。 为了使该资源对其他程序集不可见,可以将 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[] 参数。 将指定的资源文件链接至某个程序集。 资源成为程序集的一部分,但不复制该文件。 传入到此参数中的项可以在自身附加可选元数据 LogicalName、Target 和 Access。 LogicalName 元数据用于为资源指定内部标识符。 Target 元数据可以指定任务应将该文件复制到哪个路径和文件名,复制完成后,任务会将此新文件编译到程序集中。 为了使该资源对其他程序集不可见,可以将 Access 元数据设置为 private。 有关更多信息,请参见有关 Al.exe(程序集链接器) 中的 /link[resource] 选项的文档。 |
MainEntryPoint |
可选 String 参数。 指定方法的完全限定名称 (class.method),以用作将模块转换为可执行文件时的入口点。 此参数对应于 Al.exe(程序集链接器) 中的 /main 选项。 |
OutputAssembly |
必选 ITaskItem 输出参数。 指定此任务生成的文件的名称。 此参数对应于 Al.exe(程序集链接器) 中的 /out 选项。 |
Platform |
可选 String 参数。 限制可以运行此代码的平台;必须是 x86、Itanium、x64 或 anycpu 之一。 默认值为 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>