Link 任务

包装 Visual C++ 链接器工具 link.exe。 链接器工具将通用对象文件格式 (COFF) 对象文件和库链接起来以创建可执行 (.exe) 文件或动态链接库 (DLL) 的工具。 有关更多信息,请参见链接器选项

参数

下表描述了 Link 任务的参数。 大多数的任务参数和少数几个参数集对应于命令行选项。

Parameter

描述

AdditionalDependencies

可选 String[] 参数。

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

有关更多信息,请参见LINK 输入文件

AdditionalLibraryDirectories

可选 String[] 参数。

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

有关更多信息,请参见/LIBPATH(附加的 Libpath)

AdditionalManifestDependencies

可选 String[] 参数。

指定将要置于清单文件 dependency 节中的特性。

有关更多信息,请参见/MANIFESTDEPENDENCY(指定清单依赖项)。 此外,请参阅 MSDN 网站上的“发行者配置文件”。

AdditionalOptions

可选 String 参数。

命令行中指定的链接器选项的列表。 例如,"/ option1 /option2 /option#"。 将此参数用于指定不用任何其他 Link 任务参数表示的链接器选项。

有关更多信息,请参见链接器选项

AddModuleNamesToAssembly

可选 String[] 参数。

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

有关更多信息,请参见/ASSEMBLYMODULE(向程序集添加 MSIL 模块)

AllowIsolation

可选 Boolean 参数。

如果为 true,操作系统将进行清单查找和加载。 如果为 false,则会指示视为如同没有清单一样加载 DLL。

有关更多信息,请参见/ALLOWISOLATION(清单查找)

AssemblyDebug

可选 Boolean 参数。

如果为 true,将发出 DebuggableAttribute 特性以及调试信息跟踪,但禁用 JIT 优化。 如果为 false,则会发出 DebuggableAttribute 特性,但同时会禁用调试信息跟踪并启用 JIT 优化。

有关更多信息,请参见/ASSEMBLYDEBUG(添加 DebuggableAttribute)

AssemblyLinkResource

可选 String[] 参数。

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

有关更多信息,请参见/ASSEMBLYLINKRESOURCE(链接到 .NET Framework 资源)

AttributeFileTracking

隐式 Boolean 参数。

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

BaseAddress

可选 String 参数。

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

有关更多信息,请参见/BASE(基址)

BuildingInIDE

可选 Boolean 参数。

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

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

CLRImageType

可选 String 参数。

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

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

命令行选项

Default

<none>

ForceIJWImage

/CLRIMAGETYPE:IJW

ForcePureILImage

/CLRIMAGETYPE:PURE

ForceSafeILImage

/CLRIMAGETYPE:SAFE

有关更多信息,请参见/CLRIMAGETYPE(指定 CLR 映像的类型)

CLRSupportLastError

可选 String 参数。

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

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

命令行选项

Enabled

/CLRSupportLastError

Disabled

/CLRSupportLastError:NO

SystemDlls

/CLRSupportLastError:SYSTEMDLL

有关更多信息,请参见/CLRSUPPORTLASTERROR(为 PInvoke 调用保留上次的错误代码)

CLRThreadAttribute

可选 String 参数。

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

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

命令行选项

DefaultThreadingAttribute

/CLRTHREADATTRIBUTE:NONE

MTAThreadingAttribute

/CLRTHREADATTRIBUTE:MTA

STAThreadingAttribute

/CLRTHREADATTRIBUTE:STA

有关更多信息,请参见/CLRTHREADATTRIBUTE(设置 CLR 线程特性)

CLRUnmanagedCodeCheck

可选 Boolean 参数。

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

有关更多信息,请参见/CLRUNMANAGEDCODECHECK(添加 SupressUnmanagedCodeSecurityAttribute)

CreateHotPatchableImage

可选 String 参数。

准备要热修补的映像。

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

命令行选项

Enabled

/FUNCTIONPADMIN

X86Image

/FUNCTIONPADMIN:5

X64Image

/FUNCTIONPADMIN:6

ItaniumImage

/FUNCTIONPADMIN:16

有关更多信息,请参见/FUNCTIONPADMIN(创建可热修补的映像)

DataExecutionPrevention

可选 Boolean 参数。

如果为 true,指示测试的可执行文件与 Windows 数据执行保护功能兼容。

有关更多信息,请参见/NXCOMPAT(与数据执行保护兼容)

DelayLoadDLLs

可选 String[] 参数。

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

有关更多信息,请参见/DELAYLOAD(延迟加载导入)

DelaySign

可选 Boolean 参数。

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

有关更多信息,请参见/DELAYSIGN(为程序集进行部分签名)

Driver

可选 String 参数。

指定此参数以构建一个 Windows NT 内核模式驱动程序。

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

命令行选项

NotSet

<none>

Driver

/Driver

UpOnly

/DRIVER:UPONLY

WDM

/DRIVER:WDM

有关更多信息,请参见/DRIVER(Windows NT 内核模式驱动程序)

EmbedManagedResourceFile

可选 String[] 参数。

将资源文件嵌入程序集。 指定必需的资源文件名称。 选择指定用于加载该资源的逻辑名称以及在程序集清单中表示资源文件是专用的 PRIVATE 选项。

有关更多信息,请参见/ASSEMBLYRESOURCE(嵌入托管资源)

EnableCOMDATFolding

可选 Boolean 参数。

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

有关更多信息,请参见 /OPT(优化)的 ICF[= iterations] 参数。

EnableUAC

可选 Boolean 参数。

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

有关更多信息,请参见/MANIFESTUAC(将 UAC 信息嵌入到清单中)

EntryPointSymbol

可选 String 参数。

指定一个入口点函数作为 .exe 文件或 DLL 的起始地址。 指定函数名,作为参数值。

有关更多信息,请参见/ENTRY(入口点符号)

FixedBaseAddress

可选 Boolean 参数。

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

有关更多信息,请参见/FIXED(固定基址)

ForceFileOutput

可选 String 参数。

即使引用了符号但未定义或多次定义符号,也通知链接器创建有效的 .exe 文件或 DLL。

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

命令行选项

Enabled

/FORCE

MultiplyDefinedSymbolOnly

/FORCE:MULTIPLE

UndefinedSymbolOnly

/FORCE:UNRESOLVED

有关更多信息,请参见/FORCE(强制文件输出)

ForceSymbolReferences

可选 String[] 参数。

此参数文件通知链接器将指定的符号添加到符号表。

有关更多信息,请参见/INCLUDE(强制符号引用)

FunctionOrder

可选 String 参数。

此参数优化您的程序,方法是以预先确定的顺序将指定的封装的函数 (COMDAT) 放置到图像中。

有关更多信息,请参见/ORDER(按顺序放置函数)

GenerateDebugInformation

可选 Boolean 参数。

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

有关更多信息,请参见/DEBUG(生成调试信息)

GenerateManifest

可选 Boolean 参数。

如果为 true,则创建并行清单文件。

有关更多信息,请参见/MANIFEST(创建并行程序集清单)

GenerateMapFile

可选 Boolean 参数。

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

有关更多信息,请参见/MAP(生成映射文件)

HeapCommitSize

可选 String 参数。

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

有关更多信息,请参见 /HEAP(设置堆大小)中的 commit 参数。 另请参见 HeapReserveSize 参数。

HeapReserveSize

可选 String 参数。

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

有关更多信息,请参见 /HEAP(设置堆大小)中的 reserve 参数。 另请参见本表中的 HeapCommitSize 参数。

IgnoreAllDefaultLibraries

可选 Boolean 参数。

如果为 true,将通知链接器将一个或多个默认库从链接器解析外部引用时所搜索的库列表中删除。

有关更多信息,请参见/NODEFAULTLIB(忽略库)

IgnoreEmbeddedIDL

可选 Boolean 参数。

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

有关更多信息,请参见/IGNOREIDL(不将特性处理到 MIDL 中)

IgnoreImportLibrary

可选 Boolean 参数。

如果为 true,则指定导入库生成通过此配置不应该导入依赖项目中。

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

IgnoreSpecificDefaultLibraries

可选 String[] 参数。

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

有关更多信息,请参见/NODEFAULTLIB(忽略库)

ImageHasSafeExceptionHandlers

可选 Boolean 参数。

如果为 true,则链接器仅在其还可以生成图像安全异常处理程序表时才生成图像。

有关更多信息,请参见/SAFESEH(图像具有安全异常处理程序)

ImportLibrary

可选 String 参数。

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

有关更多信息,请参见/IMPLIB(命名导入库)

KeyContainer

可选 String 参数。

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

有关更多信息,请参见/KEYCONTAINER(指定密钥容器以便为程序集签名)。 另请参见本表中的 KeyFile 参数。

KeyFile

可选 String 参数。

指定包含签名组件的键的文件。

有关更多信息,请参见/KEYFILE(指定密钥或密钥对以便为程序集签名)。 另请参见 KeyContainer 参数。

LargeAddressAware

可选 Boolean 参数。

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

有关更多信息,请参见/LARGEADDRESSAWARE(处理大地址)

LinkDLL

可选 Boolean 参数。

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

有关更多信息,请参见/DLL(生成 DLL)

LinkErrorReporting

可选 String 参数。

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

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

命令行选项

NoErrorReport

/ERRORREPORT:NONE

PromptImmediately

/ERRORREPORT:PROMPT

QueueForNextLogin

/ERRORREPORT:QUEUE

SendErrorReport

/ERRORREPORT:SEND

有关更多信息,请参见/ERRORREPORT(报告内部链接器错误)

LinkIncremental

可选 Boolean 参数。

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

有关更多信息,请参见/INCREMENTAL(增量链接)

LinkLibraryDependencies

可选 Boolean 参数。

如果为 true,则指定该库将输出从项目依赖项将自动链接中。

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

LinkStatus

可选 Boolean 参数。

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

有关更多信息,请参见 /LTCG(链接时代码生成)的 STATUS 参数。

LinkTimeCodeGeneration

可选 String 参数。

为按配置文件优化指定选项。

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

命令行选项

Default

<none>

UseLinkTimeCodeGeneration

/LTCG

PGInstrument

/LTCG:PGInstrument

PGOptimization

/LTCG:PGOptimize

PGUpdate

/LTCG:PGUpdate

有关更多信息,请参见/LTCG(链接时代码生成)

ManifestFile

可选 String 参数。

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

有关更多信息,请参见/MANIFESTFILE(命名清单文件)

MapExports

可选 Boolean 参数。

如果为 true,则通知链接器在影射文件中包含导出函数。

有关更多信息,请参见 /MAPINFO(包含映射文件中的信息)的 EXPORTS 参数。

MapFileName

可选 String 参数。

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

MergedIDLBaseFileName

可选 String 参数。

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

有关更多信息,请参见/IDLOUT(命名 MIDL 输出文件)

MergeSections

可选 String 参数。

将各部分组合成一个图像。 指定 from-section=to-section。

有关更多信息,请参见/MERGE(合并节)

MidlCommandFile

可选 String 参数。

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

有关更多信息,请参见/MIDL(指定 MIDL 命令行选项)

MinimumRequiredVersion

可选 String 参数。

指定子系统的要求的最低版本。 参数是介于 0 至 65,535 范围内的十进制数。

ModuleDefinitionFile

可选 String 参数。

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

有关更多信息,请参见/DEF(指定模块定义文件)

MSDOSStubFileName

可选 String 参数。

将特定 MS-DOS 存根 (stub) 程序附加到 Win32 程序。

有关更多信息,请参见/STUB(MS-DOS 存根 (stub) 文件名)

NoEntryPoint

可选 Boolean 参数。

如果为 true,则指定纯资源 DLL。

有关更多信息,请参见/NOENTRY(无入口点)

ObjectFiles

隐式 String[] 参数。

指定链接的对象文件。

OptimizeReferences

可选 Boolean 参数。

如果为 true,则消除永远不再引用的函数和/或数据。

有关更多信息,请参见 /OPT(优化)中的 REF 参数。

OutputFile

可选 String 参数。

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

有关更多信息,请参见/OUT(输出文件名)

PerUserRedirection

可选 Boolean 参数。

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

PreprocessOutput

可选 ITaskItem[] 参数。

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

PreventDllBinding

可选 Boolean 参数。

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

有关更多信息,请参见/ALLOWBIND(禁止 DLL 绑定)

Profile

可选 Boolean 参数。

如果为 true,将生成一个可与 Performance Tools 探查器结合使用的输出文件。

有关更多信息,请参见/PROFILE(性能工具分析器)

ProfileGuidedDatabase

可选 String 参数。

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

有关更多信息,请参见/PGD(为按配置文件优化指定数据库)

ProgramDatabaseFile

可选 String 参数。

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

有关更多信息,请参见/PDB(使用程序数据库)

RandomizedBaseAddress

可选 Boolean 参数。

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

有关更多信息,请参见/DYNAMICBASE(使用地址空间布局随机化功能)

RegisterOutput

可选 Boolean 参数。

如果为 true,则注册生成的主输出文件。

SectionAlignment

可选 Integer 参数。

指定程序线性地址空间中每一节的对齐方式。 参数值是字节单位数,并且是 2 的幂。

有关更多信息,请参见/ALIGN(节对齐)

SetChecksum

可选 Boolean 参数。

如果为 true,将在 .exe 文件头中设置校验和。

有关更多信息,请参见/RELEASE(设置校验和)

ShowProgress

可选 String 参数。

指定链接操作进度报告的详细级别。

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

命令行选项

NotSet

<none>

LinkVerbose

/VERBOSE

LinkVerboseLib

/VERBOSE:Lib

LinkVerboseICF

/VERBOSE:ICF

LinkVerboseREF

/VERBOSE:REF

LinkVerboseSAFESEH

/VERBOSE:SAFESEH

LinkVerboseCLR

/VERBOSE:CLR

有关更多信息,请参见/VERBOSE(打印进度消息)

Sources

必选 ITaskItem[] 参数。

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

SpecifySectionAttributes

可选 String 参数。

指定节的特性。 这会覆盖在编译部分的文件时设置的特性。

有关更多信息,请参见/SECTION(指定节特性)

StackCommitSize

可选 String 参数。

分配附加内存时,请在每个分配中指定物理内存的量。

有关更多信息,请参见 /STACK(堆栈分配)的 commit 参数。

StackReserveSize

可选 String 参数。

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

有关更多信息,请参见 /STACK(堆栈分配)的 reserve 参数。

StripPrivateSymbols

可选 String 参数。

创建省略您不希望分发给用户的符号的第二个程序数据库 (PDB) 文件。 指定第二个 PDB 文件的名称。

有关更多信息,请参见/PDBSTRIPPED(去除私有符号)

SubSystem

可选 String 参数。

指定可执行文件的环境。

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

命令行选项

NotSet

<none>

Console

/SUBSYSTEM:CONSOLE

Windows

/SUBSYSTEM:WINDOWS

Native

/SUBSYSTEM:NATIVE

EFI Application

/SUBSYSTEM:EFI_APPLICATION

EFI Boot Service Driver

/SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER

EFI ROM

/SUBSYSTEM:EFI_ROM

EFI Runtime

/SUBSYSTEM:EFI_RUNTIME_DRIVER

WindowsCE

/SUBSYSTEM:WINDOWSCE

POSIX

/SUBSYSTEM:POSIX

有关更多信息,请参见/SUBSYSTEM(指定子系统)

SupportNobindOfDelayLoadedDLL

可选 Boolean 参数。

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

有关更多信息,请参见 /DELAY(延迟加载导入设置)的 NOBIND 参数。

SupportUnloadOfDelayLoadedDLL

可选 Boolean 参数。

如果为 true,将通知延迟加载 Helper 函数支持 DLL 的显式卸载。

有关更多信息,请参见 /DELAY(延迟加载导入设置)的 UNLOAD 参数。

SuppressStartupBanner

可选 Boolean 参数。

如果为 true,将在任务开始时防止显示版权和版本编号消息。

有关更多信息,请参见/NOLOGO(取消显示启动版权标志)(链接器)

SwapRunFromCD

可选 Boolean 参数。

如果为 true,将通知操作系统首先将链接器输出复制到交换文件,然后从那里运行图像。

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

SwapRunFromNET

可选 Boolean 参数。

如果为 true,将通知操作系统首先将链接器输出复制到交换文件,然后从那里运行图像。

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

TargetMachine

可选 String 参数。

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

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

命令行选项

NotSet

<none>

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

可选 Boolean 参数。

如果为 true,将在程序图像的可选标题中的 IMAGE_OPTIONAL_HEADER DllCharacteristics 字段中设置标志。 如果设置此标记,则终端服务器将无法对应用程序进行某些更改。

有关更多信息,请参见/TSAWARE(创建终端服务器识别的应用程序)

TrackerLogDirectory

可选 String 参数。

指定跟踪日志的目录。

TreatLinkerWarningAsErrors

可选 Boolean 参数。

如果为 true 且链接器生成警告,将不会生成任何输出文件。

有关更多信息,请参见/WX(将链接器警告视为错误)

TurnOffAssemblyGeneration

可选 Boolean 参数。

如果为 true,则为当前的输出文件创建不带 .NET Framework 程序集的图像。

有关更多信息,请参见/NOASSEMBLY(创建 MSIL 模块)

TypeLibraryFile

可选 String 参数。

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

有关更多信息,请参见/TLBOUT(命名 .TLB 文件)

TypeLibraryResourceID

可选 Integer 参数。

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

有关更多信息,请参见/TLBID(指定类型库的资源 ID)

UACExecutionLevel

可选 String 参数。

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

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

命令行选项

AsInvoker

level='asInvoker'

HighestAvailable

level='highestAvailable'

RequireAdministrator

level='requireAdministrator'

有关更多信息,请参见 /MANIFESTUAC(将 UAC 信息嵌入到清单中)的 level 参数。

UACUIAccess

可选 Boolean 参数。

如果 true,应用程序跳过用户界面保护级别和驱动输入到桌面上的高特权 windows;否则,false。

有关更多信息,请参见 /MANIFESTUAC(将 UAC 信息嵌入到清单中)的 uiAccess 参数。

UseLibraryDependencyInputs

可选 Boolean 参数。

如果为 true,则在链接项目依赖项的库输出时使用管理员工具而非库文件本身输入。

Version

可选 String 参数。

在 .exe 或 .dll 文件头中包含版本号。 指定“major[.minor]”。 major 和 minor 参数是从 0 到 65535 的十进制数。

有关更多信息,请参见/VERSION(版本信息)

请参见

其他资源

MSBuild 任务参考