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_USER 的 HKEY_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(版本信息)。 |