Link 任务

注释

仅当使用C++生成系统时,此任务才可用。

包装Microsoft C++链接器工具, link.exe。 链接器工具链接通用对象文件格式(COFF)对象文件和库,以创建可执行文件(.exe)文件或动态链接库(DLL)。 有关详细信息,请参阅命令行中的 链接器选项 和使用 MSBuild ,并使用 命令行中的Microsoft C++工具集

参数

下面介绍了 链接 任务的参数。 大多数任务参数和几个参数集对应于命令行选项。

  • AdditionalDependencies

    可选 String[] 参数。

    指定要添加到命令的输入文件的列表。

    有关详细信息,请参阅 LINK 输入文件

  • AdditionalLibraryDirectories

    可选 String[] 参数。

    重写环境库路径。 指定目录名称。

    有关详细信息,请参阅 /LIBPATH (其他 Libpath)。

  • AdditionalManifestDependencies

    可选 String[] 参数。

    指定将放置在 dependency 清单文件的节中的属性。

    有关详细信息,请参阅 /MANIFESTDEPENDENCY (指定清单依赖项)。 另请参阅 发布服务器配置文件

  • AdditionalOptions

    可选 字符串 参数。

    命令行中指定的链接器选项列表。 例如 /<option1> /<option2> /<option#>。 使用此参数可指定其他 链接任务参数 不表示的链接器选项。

    有关详细信息,请参阅 链接器选项

  • AddModuleNamesToAssembly

    可选 String[] 参数。

    将模块引用添加到程序集。

    有关详细信息,请参阅 /ASSEMBLYMODULE(将 MSIL 模块添加到程序集)。

  • AllowIsolation

    可选的 布尔 参数。

    如果 true会导致作系统执行清单查找和加载。 如果 false,则指示 DLL 已加载,就好像没有清单一样。

    有关详细信息,请参阅 /ALLOWISOLATION (清单查找)。

  • AssemblyDebug

    可选的 布尔 参数。

    如果 true发出 DebuggableAttribute 属性以及调试信息跟踪并禁用 JIT 优化。 如果 false发出 DebuggableAttribute 属性,但禁用调试信息跟踪并启用 JIT 优化。

    有关详细信息,请参阅 /ASSEMBLYDEBUG (添加 DebuggableAttribute)。

  • AssemblyLinkResource

    可选 String[] 参数。

    在输出文件中创建指向 .NET Framework 资源的链接;资源文件未放置在输出文件中。 指定资源的名称。

    有关详细信息,请参阅 /ASSEMBLYLINKRESOURCE (链接到 .NET Framework 资源)。

  • AttributeFileTracking

    隐式 布尔 参数。

    启用更深入的文件跟踪以捕获链接增量的行为。 始终返回 true

  • BaseAddress

    可选 字符串 参数。

    设置要生成的程序或 DLL 的基址。 指定 {address[,size] | @filename,key}

    有关详细信息,请参阅 /BASE (基址)。

  • BuildingInIDE

    可选的 布尔 参数。

    如果为 true,则指示从 IDE 调用 MSBuild。 否则,指示从命令行调用 MSBuild。

    此参数没有等效的链接器选项。

  • CLRImageType

    可选 字符串 参数。

    设置公共语言运行时 (CLR) 映像的类型。

    指定以下值之一,每个值对应于链接器选项。

    • 违约 - <没有>

    • ForceIJWImage - /CLRIMAGETYPE:IJW

    • ForcePureILImage - /CLRIMAGETYPE:PURE

    • ForceSafeILImage - /CLRIMAGETYPE:SAFE

    有关详细信息,请参阅 /CLRIMAGETYPE(指定 CLR 映像的类型)。

  • CLRSupportLastError

    可选 字符串 参数。

    保留通过 P/Invoke 机制调用的函数的最后一个错误代码。

    指定以下值之一,每个值对应于链接器选项。

    • 启用 - /CLRSupportLastError

    • 禁用 - /CLRSupportLastError:NO

    • SystemDlls - /CLRSupportLastError:SYSTEMDLL

    有关详细信息,请参阅 /CLRSUPPORTLASTERROR (保留 PInvoke 调用的最后一个错误代码)。

  • CLRThreadAttribute

    可选 字符串 参数。

    显式指定 CLR 程序的入口点的线程属性。

    指定以下值之一,每个值对应于链接器选项。

    • DefaultThreadingAttribute - /CLRTHREADATTRIBUTE:NONE

    • MTAThreadingAttribute - /CLRTHREADATTRIBUTE:MTA

    • STAThreadingAttribute - /CLRTHREADATTRIBUTE:STA

    有关详细信息,请参阅 /CLRTHREADATTRIBUTE (设置 CLR 线程属性)。

  • CLRUnmanagedCodeCheck

    可选的 布尔 参数。

    指定链接器是否将 SuppressUnmanagedCodeSecurityAttribute 应用于从托管代码生成的 P/Invoke 调用转换为本机 DLL。

    有关详细信息,请参阅 /CLRUNMANAGEDCODECHECK (Add SuppressUnmanagedCodeSecurityAttribute)。

  • CreateHotPatchableImage

    可选 字符串 参数。

    准备用于热修补的映像。

    指定以下值之一,该值对应于链接器选项。

    • 启用 - /FUNCTIONPADMIN

    • X86Image - /FUNCTIONPADMIN:5

    • X64Image - /FUNCTIONPADMIN:6

    • ItaniumImage - /FUNCTIONPADMIN:16

    有关详细信息,请参阅 /FUNCTIONPADMIN (创建可热修补映像)。

  • DataExecutionPrevention

    可选的 布尔 参数。

    如果 true指示已测试可执行文件是否与 Windows 数据执行防护功能兼容。

    有关详细信息,请参阅 /NXCOMPAT(与数据执行防护兼容)。

  • DelayLoadDL

    可选 String[] 参数。

    此参数会导致 DLL 加载延迟 。 指定要延迟加载的 DLL 的名称。

    有关详细信息,请参阅 /DELAYLOAD (延迟加载导入)。

  • DelaySign

    可选的 布尔 参数。

    如果 true为程序集部分签名,则为程序集签名。 默认情况下,该值为 false

    有关详细信息,请参阅 /DELAYSIGN (部分对程序集进行签名)。

  • 驱动程序

    可选 字符串 参数。

    指定此参数以生成 Windows NT 内核模式驱动程序。

    指定以下值之一,每个值对应于链接器选项。

    • NotSet - <没有>

    • 司机 - /司机

    • UpOnly - /DRIVER:UPONLY

    • WDM - /DRIVER:WDM

    有关详细信息,请参阅 /DRIVER (Windows NT 内核模式驱动程序)。

  • EmbedManagedResourceFile

    可选 String[] 参数。

    在程序集中嵌入资源文件。 指定所需的资源文件名。 (可选)指定用于加载资源的逻辑名称,以及程序集清单中指示资源文件为专用的 PRIVATE 选项。

    有关详细信息,请参阅 /ASSEMBLYRESOURCE (嵌入托管资源)。

  • EnableCOMDATFolding

    可选的 布尔 参数。

    如果 true启用相同的 COMDAT 折叠。

    有关详细信息,请参阅 ICF[= iterations]/OPT(优化)的参数。

  • EnableUAC

    可选的 布尔 参数。

    如果 true指定用户帐户控制(UAC)信息嵌入到程序清单中。

    有关详细信息,请参阅 /MANIFESTUAC (在清单中嵌入 UAC 信息)。

  • EntryPointSymbol

    可选 字符串 参数。

    将入口点函数指定为 .exe 文件或 DLL 的起始地址。 将函数名称指定为参数值。

    有关详细信息,请参阅 /ENTRY(入口点符号)。

  • FixedBaseAddress

    可选的 布尔 参数。

    如果 true创建一个程序或 DLL,该程序或 DLL 只能在其首选基址加载。

    有关详细信息,请参阅 /FIXED (固定基址)。

  • ForceFileOutput

    可选 字符串 参数。

    指示链接器创建有效的 .exe 文件或 DLL,即使引用但未定义符号,或相乘。

    指定以下值之一,每个值对应于命令行选项。

    • 启用 - /力

    • MultiplyDefinedSymbolOnly - /FORCE:MULTIPLE

    • UndefinedSymbolOnly - /FORCE:UNRESOLVED

    有关详细信息,请参阅 /FORCE (强制文件输出)。

  • ForceSymbolReferences

    可选 String[] 参数。

    此参数告知链接器向符号表添加指定的符号。

    有关详细信息,请参阅 /INCLUDE (强制符号引用)。

  • FunctionOrder

    可选 字符串 参数。

    此参数通过将指定的打包函数 (COMDAT) 置于预先确定的顺序将映像中来优化程序。

    有关详细信息,请参阅 /ORDER (按顺序放置函数)。

  • GenerateDebugInformation

    可选的 布尔 参数。

    如果 true.exe 文件或 DLL 创建调试信息。

    有关详细信息,请参阅 /DEBUG (生成调试信息)。

  • GenerateManifest

    可选的 布尔 参数。

    如果 true创建并排清单文件。

    有关详细信息,请参阅 /MANIFEST(创建并行程序集清单)。

  • GenerateMapFile

    可选的 布尔 参数。

    如果 true创建 映射文件, 映射文件的文件扩展名为 .map

    有关详细信息,请参阅 /MAP (生成 mapfile)。

  • HeapCommitSize

    可选 字符串 参数。

    指定一次要分配的堆上的物理内存量。

    有关详细信息,请参阅 commit/HEAP 中的参数(设置堆大小)。 另请参阅 HeapReserveSize 参数。

  • HeapReserveSize

    可选 字符串 参数。

    指定虚拟内存中的堆分配总量。

    有关详细信息,请参阅 reserve/HEAP 中的参数(设置堆大小)。 另请参阅此表中的 HeapCommitSize 参数。

  • IgnoreAllDefaultLibraries

    可选的 布尔 参数。

    如果 true指示链接器从解析外部引用时搜索的库列表中删除一个或多个默认库。

    有关详细信息,请参阅 /NODEFAULTLIB (忽略库)。

  • IgnoreEmbeddedIDL

    可选的 布尔 参数。

    如果 true指定源代码中的任何 IDL 属性不应处理到 .idl 文件中。

    有关详细信息,请参阅 /IGNOREIDL (不要将属性处理到 MIDL 中)。

  • IgnoreImportLibrary

    可选的 布尔 参数。

    如果 true指定此配置生成的导入库不应导入到依赖项目中。

    此参数与链接器选项不对应。

  • IgnoreSpecificDefaultLibraries

    可选 String[] 参数。

    指定要忽略的默认库的一个或多个名称。 使用分号分隔多个库。

    有关详细信息,请参阅 /NODEFAULTLIB (忽略库)。

  • ImageHasSafeExceptionHandlers

    可选的 布尔 参数。

    如果 true,仅当链接器还可以生成图像的安全异常处理程序的表时,链接器才会生成一个图像。

    有关详细信息,请参阅 /VAREH(图像具有安全异常处理程序)。

  • ImportLibrary

    用户指定的导入库名称,用于替换默认库名称。

    有关详细信息,请参阅 /IMPLIB (名称导入库)。

  • KeyContainer

    可选 字符串 参数。

    包含已签名程序集密钥的容器。

    有关详细信息,请参阅 /KEYCONTAINER(指定要对程序集进行签名的密钥容器)。 另请参阅此表中的 KeyFile 参数。

  • KeyFile

    可选 字符串 参数。

    指定包含已签名程序集的密钥的文件。

    有关详细信息,请参阅 /KEYFILE(指定用于对程序集进行签名的密钥或密钥对)。 另请参阅 KeyContainer 参数。

  • LargeAddressAware

    可选的 布尔 参数。

    如果 true,应用程序可以处理大于 2 GB 的地址。

    有关详细信息,请参阅 /LARGEADDRESSAWARE (处理大型地址)。

  • LinkDLL

    可选的 布尔 参数。

    如果 true生成 DLL 作为主输出文件。

    有关详细信息,请参阅 /DLL(生成 DLL)。

  • LinkErrorReporting

    可选 字符串 参数。

    允许直接向Microsoft提供内部编译器错误(ICE)信息。

    指定以下值之一,每个值对应于命令行选项。

    • NoErrorReport - /ERRORREPORT:NONE

    • PromptImmediately - /ERRORREPORT:PROMPT

    • QueueForNextLogin - /ERRORREPORT:QUEUE

    • SendErrorReport - /ERRORREPORT:SEND

    有关详细信息,请参阅 /ERRORREPORT (报告内部链接器错误)。

  • LinkIncremental

    可选的 布尔 参数。

    如果 true启用增量链接,则启用增量链接。

    有关详细信息,请参阅 /INCREMENTAL (以增量方式链接)。

  • LinkLibraryDependencies

    可选的 布尔 参数。

    如果 true指定项目依赖项中的库输出会自动链接在内。

    此参数与链接器选项不对应。

  • LinkStatus

    可选的 布尔 参数。

    如果 true指定链接器显示进度指示器,该指示器显示链接完成百分比。

    有关详细信息,请参阅 STATUS/LTG 的参数(链接时代码生成)。

  • LinkTimeCodeGeneration

    可选 字符串 参数。

    指定配置文件引导式优化的选项。

    指定以下值之一,每个值对应于命令行选项。

    • 违约 - <没有>

    • UseLinkTimeCodeGeneration - /LTG

    • PGInstrument - /LTG:PGInstrument

    • PGOptimization - /LTG:PGOptimize

    • PGUpdate

      - /LTG:PGUpdate

    有关详细信息,请参阅 /LTG (链接时代码生成)。

  • ManifestFile

    可选 字符串 参数。

    将默认清单文件名更改为指定的文件名。

    有关详细信息,请参阅 /MANIFESTFILE (名称清单文件)。

  • MapExports

    可选的 布尔 参数。

    如果 true指示链接器在映射文件中包括导出的函数。

    有关详细信息,请参阅 EXPORTS/MAPINFO 的参数(包括 mapfile 中的信息)。

  • MapFileName

    可选 字符串 参数。

    将默认映射文件名更改为指定的文件名。

  • MergedIDLBaseFileName

    可选 字符串 参数。

    指定 .idl 文件的文件名和文件扩展名。

    有关详细信息,请参阅 /IDLOUT (名称 MIDL 输出文件)。

  • MergeSections

    可选 字符串 参数。

    合并图像中的分区。 指定 from-section=to-section

    有关详细信息,请参阅 /MERGE (合并部分)。

  • MidlCommandFile

    可选 字符串 参数。

    指定包含 MIDL 命令行选项的文件的名称。

    有关详细信息,请参阅 /MIDL (指定 MIDL 命令行选项)。

  • MinimumRequiredVersion

    可选 字符串 参数。

    指定子系统的最低所需版本。 参数是 0 到 65535 范围内的十进制数。

  • ModuleDefinitionFile

    可选 字符串 参数。

    指定 模块定义文件的名称。

    有关详细信息,请参阅 /DEF (指定模块定义文件)。

  • MSDOSStubFileName

    可选 字符串 参数。

    将指定的 MS-DOS 存根程序附加到 Win32 程序。

    有关详细信息,请参阅 /STUB (MS-DOS 存根文件名)。

  • NoEntryPoint

    可选的 布尔 参数。

    如果 true指定仅限资源的 DLL。

    有关详细信息,请参阅 /NOENTRY (无入口点)。

  • ObjectFiles

    隐式 String[] 参数。

    指定链接的对象文件。

  • OptimizeReferences

    可选的 布尔 参数。

    如果 true,则消除从未引用的函数和/或数据。

    有关详细信息,请参阅 REF/OPT(优化)中的参数。

  • OutputFile

    可选 字符串 参数。

    重写链接器创建的程序的默认名称和位置。

    有关详细信息,请参阅 /OUT(输出文件名)。

  • PerUserRedirection

    可选的 布尔 参数。

    如果 true 启用了注册输出,则强制将注册表写入 HKEY_CLASSES_ROOT 重定向到 HKEY_CURRENT_USER

  • PreprocessOutput

    可选 ITaskItem[] 参数。

    定义可由任务使用和发出的预处理器输出项的数组。

  • PreventDllBinding

    可选的 布尔 参数。

    如果 true指示 Bind.exe 链接图像不应绑定。

    有关详细信息,请参阅 /ALLOWBIND (阻止 DLL 绑定)。

  • 个人资料

    可选的 布尔 参数。

    如果 true生成可与 性能工具 探查器一起使用的输出文件。

    有关详细信息,请参阅 /PROFILE (性能工具探查器)。

  • ProfileGuidedDatabase

    可选 字符串 参数。

    指定将用于保存有关正在运行的程序的信息的 .pgd 文件的名称

    有关详细信息,请参阅 /PGD(指定数据库进行配置文件引导式优化)。

  • ProgramDatabaseFile

    可选 字符串 参数。

    指定链接器创建的程序数据库(PDB)的名称。

    有关详细信息,请参阅 /PDB (使用程序数据库)。

  • RandomizedBaseAddress

    可选的 布尔 参数。

    如果 true生成可执行映像,则可以使用 Windows 的 地址空间布局随机化 (ASLR) 功能在加载时随机重新定基。

    有关详细信息,请参阅 /DYNAMICBASE (使用地址空间布局随机化)。

  • RegisterOutput

    可选的 布尔 参数。

    如果 true注册此生成的主要输出。

  • SectionAlignment

    可选的 Integer 参数。

    指定程序线性地址空间中每个部分的对齐方式。 参数值是字节的单位数,是两个的幂。

    有关详细信息,请参阅 /ALIGN (节对齐方式)。

  • SetChecksum

    可选的 布尔 参数。

    如果 true设置 .exe 文件的标头中的校验和。

    有关详细信息,请参阅 /RELEASE (设置校验和)。

  • ShowProgress

    可选 字符串 参数。

    指定链接作进度报告的详细程度。

    指定以下值之一,每个值对应于命令行选项。

    • NotSet - <没有>

    • LinkVerbose - /详细

    • LinkVerboseLib - /VERBOSE:Lib

    • LinkVerboseICF - /VERBOSE:ICF

    • LinkVerboseREF - /VERBOSE:REF

    • LinkVerboseSAFESEH - /VERBOSE:VAREH

    • LinkVerboseCLR - /VERBOSE:CLR

    有关详细信息,请参阅 /VERBOSE (打印进度消息)。

  • 必需 ITaskItem[] 参数。

    定义可由任务使用和发出的 MSBuild 源文件项的数组。

  • SpecifySectionAttributes

    可选 字符串 参数。

    指定节的属性。 这会替代在编译节 的.obj 文件时设置的属性。

    有关详细信息,请参阅 /SECTION (指定节属性)。

  • StackCommitSize

    可选 字符串 参数。

    指定分配额外内存时每个分配中的物理内存量。

    有关详细信息,请参阅 commit/STACK(堆栈分配)的参数。

  • StackReserveSize

    可选 字符串 参数。

    指定虚拟内存中的总堆栈分配大小。

    有关详细信息,请参阅 reserve/STACK(堆栈分配)的参数。

  • StripPrivateSymbols

    可选 字符串 参数。

    创建第二个程序数据库 (PDB) 文件,该文件省略你不想分发给客户的符号。 指定第二个 PDB 文件的名称。

    有关详细信息,请参阅 /PDBSTRIPPED(去除私有符号)

  • 子系统

    可选 字符串 参数。

    指定可执行文件的环境。

    指定以下值之一,每个值对应于命令行选项。

    • NotSet - <没有>

    • 安慰 - /SUBSYSTEM:CONSOLE

    • 窗户 - /SUBSYSTEM:WINDOWS

    • 本地 - /SUBSYSTEM:NATIVE

    • EFI 应用程序 - /SUBSYSTEM:EFI_APPLICATION

    • EFI 启动服务驱动程序 - /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER

    • EFI ROM - /SUBSYSTEM:EFI_ROM

    • EFI 运行时 - /SUBSYSTEM:EFI_RUNTIME_DRIVER

    • WindowsCE - /SUBSYSTEM:WINDOWSCE

    • POSIX - /SUBSYSTEM:POSIX

    有关详细信息,请参阅 /SUBSYSTEM (指定子系统)。

  • SupportNobindOfDelayLoadedDLL

    可选的 布尔 参数。

    如果 true,请告知链接器不要在最终图像中包含可绑定的导入地址表(IAT)。

    有关详细信息,请参阅 NOBIND/DELAY(延迟加载导入设置)的参数。

  • SupportUnloadOfDelayLoadedDLL

    可选的 布尔 参数。

    如果 true指示延迟加载帮助程序函数支持显式卸载 DLL。

    有关详细信息,请参阅 UNLOAD/DELAY(延迟加载导入设置)的参数。

  • SuppressStartupBanner

    可选的 布尔 参数。

    如果 true,在任务启动时阻止显示版权和版本号消息。

    有关详细信息,请参阅 /NOLOGO (禁止显示启动横幅)(链接器)。

  • SwapRunFromCD

    可选的 布尔 参数。

    如果 true指示作系统先将链接器输出复制到交换文件,然后从该处运行映像。

    有关详细信息,请参阅 CD/SWAPRUN 的参数(将链接器输出加载到交换文件)。 另请参阅 SwapRunFromNET 参数。

  • SwapRunFromNET

    可选的 布尔 参数。

    如果 true指示作系统先将链接器输出复制到交换文件,然后从该处运行映像。

    有关详细信息,请参阅 NET/SWAPRUN 的参数(将链接器输出加载到交换文件)。 另请参阅此表中的 SwapRunFromCD 参数。

  • TargetMachine

    可选 字符串 参数。

    指定程序或 DLL 的目标平台。

    指定以下值之一,每个值对应于命令行选项。

    • NotSet - <没有>

    • MachineARM - /MACHINE:ARM

    • MachineEBC - /MACHINE:EBC

    • MachineIA64 - /MACHINE:IA64

    • MachineMIPS - /MACHINE:MIPS

    • MachineMIPS16 - /MACHINE:MIPS16

    • MachineMIPSFPU - /MACHINE:MIPSFPU

    • MachineMIPSFPU16 - /MACHINE:MIPSFPU16

    • MachineSH4 - /MACHINE:SH4

    • MachineTHUMB - /MACHINE:THUMB

    • MachineX64 - /MACHINE:X64

    • MachineX86 - /MACHINE:X86

    有关详细信息,请参阅 /MACHINE(指定目标平台)。

  • TerminalServerAware

    可选的 布尔 参数。

    如果 true,在程序图像的可选标头的 IMAGE_OPTIONAL_HEADER DllCharacteristics 字段中设置标志。 设置此标志后,终端服务器不会对应用程序进行某些更改。

    有关详细信息,请参阅 /TSAWARE (创建终端服务器感知应用程序)。

  • TrackerLogDirectory

    可选 字符串 参数。

    指定跟踪器日志的目录。

  • TreatLinkerWarningAsErrors

    可选的 布尔 参数。

    如果 true会导致在链接器生成警告时不生成任何输出文件。

    有关详细信息,请参阅 /WX(将链接器警告视为错误)。

  • TurnOffAssemblyGeneration

    可选的 布尔 参数。

    如果 true为没有 .NET Framework 程序集的当前输出文件创建映像。

    有关详细信息,请参阅 /NOASSEMBLY (创建 MSIL 模块)。

  • TypeLibraryFile

    可选 字符串 参数。

    指定 .tlb 文件的文件名和文件扩展名。 指定文件名或路径和文件名。

    有关详细信息,请参阅 /TLBOUT (名称 .tlb 文件)。

  • TypeLibraryResourceID

    可选的 Integer 参数。

    为链接器创建的类型库指定用户指定的值。 指定从 1 到 65535 的值。

    有关详细信息,请参阅 /TLBID(指定 TypeLib 的资源 ID)。

  • UACExecutionLevel

    可选 字符串 参数。

    使用用户帐户控制运行应用程序时,指定应用程序请求的执行级别。

    指定以下值之一,每个值对应于命令行选项。

    • AsInvoker - level='asInvoker'

    • HighestAvailable - level='highestAvailable'

    • RequireAdministrator - level='requireAdministrator'

    有关详细信息,请参阅 level/MANIFESTUAC 的参数(在清单中嵌入 UAC 信息)。

  • UACUIAccess

    可选的 布尔 参数。

    如果 true,应用程序会绕过用户界面保护级别,并将输入驱动到桌面上的更高权限窗口;否则为 false

    有关详细信息,请参阅 uiAccess/MANIFESTUAC 的参数(在清单中嵌入 UAC 信息)。

  • UseLibraryDependencyInputs

    可选的 布尔 参数。

    如果 true,则当项目依赖项的库输出被链接时,将使用库工具的输入,而不是库文件本身。

  • 版本

    可选 字符串 参数。

    将版本号放在 .exe.dll 文件的标头中。 指定“major[.minor]”。 参数majorminor是从 0 到 65535 的十进制数。

    有关详细信息,请参阅 /VERSION (版本信息)。

另请参阅