<?xml version="1.0" encoding="utf-8"?>
<!--Copyright, Microsoft Corporation, All rights reserved.-->
<Rule Name="Link" PageTemplate="tool" DisplayName="链接器" SwitchPrefix="/" Order="20" xmlns="http://schemas.microsoft.com/build/2009/properties" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <Rule.Categories>
    <Category Name="General" DisplayName="常规"/>
    <Category Name="Input" DisplayName="输入"/>
    <Category Name="Manifest File" DisplayName="清单文件"/>
    <Category Name="Debugging" DisplayName="调试"/>
    <Category Name="System" DisplayName="系统"/>
    <Category Name="Optimization" DisplayName="优化"/>
    <Category Name="Embedded IDL" DisplayName="嵌入的 IDL"/>
    <Category Name="Windows Metadata" DisplayName="Windows 元数据"/>
    <Category Name="Advanced" DisplayName="高级"/>
    <Category Name="All Options" DisplayName="所有选项" Subtype="Search"/>
    <Category Name="Command Line" DisplayName="命令行" Subtype="CommandLine"/>
  </Rule.Categories>
  <Rule.DataSource>
    <DataSource Persistence="ProjectFile" ItemType="Link" Label="" HasConfigurationCondition="true"/>
  </Rule.DataSource>
  <StringProperty Subtype="file" Name="OutputFile" DisplayName="输出文件" Description="/OUT 选项可重写链接器创建的程序的默认名称和位置。" Category="General" Switch="OUT" Separator=":" F1Keyword="VC.Project.VCLinkerTool.OutputFile">
  </StringProperty>
  <StringProperty Name="Version" DisplayName="版本" Description="/VERSION 选项告知链接器将版本号置于 .exe 或 .dll 文件头中。使用 DUMPBIN /HEADERS 可查看 OPTIONAL HEADER VALUES 的映像版本字段，从而查看 /VERSION 的效果。" Category="General" Switch="VERSION" Separator=":" F1Keyword="VC.Project.VCLinkerTool.Version">
  </StringProperty>
  <BoolProperty ReverseSwitch="INCREMENTAL:NO" Name="LinkIncremental" DisplayName="启用增量链接" Description="启用增量链接。     (/INCREMENTAL, /INCREMENTAL:NO)" Category="General" Switch="INCREMENTAL" F1Keyword="VC.Project.VCLinkerTool.LinkIncremental">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <BoolProperty Name="IgnoreImportLibrary" DisplayName="忽略导入库" Description="指定不应将由此配置生成的导入库导入到依赖项目中。" Category="General" IncludeInCommandLine="false" F1Keyword="VC.Project.VCLinkerTool.IgnoreImportLibrary">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <BoolProperty Name="RegisterOutput" DisplayName="注册输出" Description="指定是否注册此生成的主输出。" Category="General" IncludeInCommandLine="false" F1Keyword="VC.Project.VCLinkerTool.RegisterOutput">
  </BoolProperty>
  <BoolProperty Name="PerUserRedirection" DisplayName="逐用户重定向" Description="启用“注册输出”后，“逐用户重定向”强制注册表将向 HKEY_CLASSES_ROOT 写入内容重定向为向 HKEY_CURRENT_USER 写入。" Category="General" IncludeInCommandLine="false" F1Keyword="VC.Project.VCLinkerTool.PerUserRedirection">
  </BoolProperty>
  <StringListProperty Subtype="folder" Name="AdditionalLibraryDirectories" DisplayName="附加库目录" Description="允许用户重写环境库路径。(/LIBPATH:folder)" Category="General" Switch="LIBPATH:" F1Keyword="VC.Project.VCLinkerTool.AdditionalLibraryDirectories">
  </StringListProperty>
  <BoolProperty Name="LinkLibraryDependencies" DisplayName="链接库依赖项" Description="指定是否自动链接项目依赖项的库输出。" Category="General" IncludeInCommandLine="false" F1Keyword="VC.Project.VCLinkerTool.LinkLibraryDependencies">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="ProjectReference" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <BoolProperty Name="UseLibraryDependencyInputs" DisplayName="使用库依赖项输入" Description="指定在项目依赖项的库输出中进行链接时，是否使用对文档管理程序工具的输入，而不使用库文件本身。" Category="General" IncludeInCommandLine="false" F1Keyword="VC.Project.VCLinkerTool.UseLibraryDependencyInputs">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="ProjectReference" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <BoolProperty ReverseSwitch="ALLOWBIND:NO" Name="PreventDllBinding" DisplayName="阻止 Dll 绑定" Description="/ALLOWBIND:NO 可在 DLL 的标头中设置一位，用来指示不允许映像绑定到的 Bind.exe。如果 DLL 已经过数字签名，则您可能不希望绑定它(因为绑定会使签名无效)。" Category="General" Switch="ALLOWBIND" F1Keyword="VC.Project.VCLinkerTool.PreventDLLBinding">
  </BoolProperty>
  <BoolProperty ReverseSwitch="WX:NO" Name="TreatLinkerWarningAsErrors" DisplayName="将链接器警告视为错误" Description="/WX 指示在链接器生成警告的情况下不生成任何输出文件。" Category="General" Switch="WX" F1Keyword="VC.Project.VCLinkerTool.TreatLinkerWarningsAsErrors">
  </BoolProperty>
  <StringListProperty Subtype="file" Name="Natvis" DisplayName="Natvis 文件" Description="要添加到 pdb 的 Natvis 文件" Category="General" Switch="NATVIS:" Visible="false" F1Keyword="natvis">
  </StringListProperty>
  <EnumProperty Name="ForceFileOutput" DisplayName="强制文件输出" Description="/FORCE 选项告知链接器创建 .exe 文件或 DLL，即使引用的符号未经定义或多次定义也是如此。这可能会创建无效的 exe 文件。" Category="General" F1Keyword="VC.Project.VCLinkerTool.ForceFileOutput">
    <EnumValue Name="Enabled" Switch="FORCE" DisplayName="已启用" Description="不带参数的 /FORCE 表示多次定义和未解析。">
    </EnumValue>
    <EnumValue Name="MultiplyDefinedSymbolOnly" Switch="FORCE:MULTIPLE" DisplayName="仅限多次定义的符号" Description="使用 /FORCE:MULTIPLE 可创建输出文件，而不管 LINK 是否找到了符号的多个定义。">
    </EnumValue>
    <EnumValue Name="UndefinedSymbolOnly" Switch="FORCE:UNRESOLVED" DisplayName="仅限未定义的符号" Description="使用 /FORCE:UNRESOLVED 可创建输出文件，而不管 LINK 是否找到未定义的符号。如果未解析入口点符号，则将忽略 /FORCE:UNRESOLVED。">
    </EnumValue>
  </EnumProperty>
  <StringListProperty Name="SpecifySectionAttributes" DisplayName="指定节特性" Description="/SECTION 选项将更改节的特性，以重写编译节的 .obj 文件时设置的特性。" Category="General" Switch="SECTION:" F1Keyword="VC.Project.VCLinkerTool.SpecifySectionAttributes">
  </StringListProperty>
  <StringProperty Subtype="folder" Name="TrackerLogDirectory" DisplayName="跟踪器日志目录" Description="跟踪器日志目录。" Category="General" IncludeInCommandLine="false" Visible="false">
  </StringProperty>
  <StringListProperty Subtype="file" Name="AdditionalDependencies" DisplayName="附加依赖项" Description="指定要添加到链接命令行的附加项。[例如 kernel32.lib] " Category="Input" F1Keyword="VC.Project.VCLinkerTool.AdditionalDependencies">
  </StringListProperty>
  <BoolProperty Name="IgnoreAllDefaultLibraries" DisplayName="忽略所有默认库" Description="/NODEFAULTLIB 选项通知链接器从其在解析外部引用时搜索的库列表中移除一个或多个默认库。" Category="Input" Switch="NODEFAULTLIB" F1Keyword="VC.Project.VCLinkerTool.IgnoreAllDefaultLibraries">
  </BoolProperty>
  <StringListProperty Subtype="file" Name="IgnoreSpecificDefaultLibraries" DisplayName="忽略特定默认库" Description="指定要忽略的一个或多个默认库的名称；用分号分隔多个库。     (/NODEFAULTLIB:[名称, 名称, ...])" Category="Input" Switch="NODEFAULTLIB:" F1Keyword="VC.Project.VCLinkerTool.IgnoreDefaultLibraryNames">
  </StringListProperty>
  <StringProperty Subtype="file" Name="ModuleDefinitionFile" DisplayName="模块定义文件" Description="/DEF 选项将模块定义文件(.def)传递到链接器。只能为 LINK 指定一个 .def 文件。" Category="Input" Switch="DEF" Separator=":" F1Keyword="VC.Project.VCLinkerTool.ModuleDefinitionFile">
  </StringProperty>
  <StringListProperty Subtype="file" Name="ForceSymbolReferences" DisplayName="强制符号引用" Description="/INCLUDE 选项告知链接器将指定的符号添加到符号表中。" Category="Input" Switch="INCLUDE:" F1Keyword="VC.Project.VCLinkerTool.ForceSymbolReferences">
  </StringListProperty>
  <StringListProperty Subtype="file" Name="DelayLoadDLLs" DisplayName="延迟加载的 DLL" Description="/DELAYLOAD 选项导致延迟加载 DLL。dllname 指定要延迟加载的 DLL。" Category="Input" Switch="DELAYLOAD:" F1Keyword="VC.Project.VCLinkerTool.DelayLoadDLLS">
  </StringListProperty>
  <BoolProperty ReverseSwitch="MANIFEST:NO" Name="GenerateManifest" DisplayName="生成清单" Description="/MANIFEST 指定链接器应创建并行清单文件。" Category="Manifest File" Switch="MANIFEST" F1Keyword="VC.Project.VCLinkerTool.GenerateManifest">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <StringProperty Subtype="file" Name="ManifestFile" DisplayName="清单文件" Description="/MANIFESTFILE 允许您更改清单文件的默认名称。清单文件的默认名称是追加有 .manifest 的文件名。" Category="Manifest File" Switch="ManifestFile" Separator=":" F1Keyword="VC.Project.VCLinkerTool.ManifestFile">
  </StringProperty>
  <StringListProperty Subtype="file" Name="AdditionalManifestDependencies" DisplayName="附加清单依赖项" Description="/MANIFESTDEPENDENCY 允许您指定将放入清单文件的依赖项节的特性。" Category="Manifest File" Switch="MANIFESTDEPENDENCY:" F1Keyword="VC.Project.VCLinkerTool.AdditionalManifestDependencies">
  </StringListProperty>
  <BoolProperty ReverseSwitch="ALLOWISOLATION:NO" Name="AllowIsolation" DisplayName="允许隔离" Description="指定清单查找行为。(/ALLOWISOLATION:NO)" Category="Manifest File" F1Keyword="VC.Project.VCLinkerTool.AllowIsolation">
  </BoolProperty>
  <BoolProperty ReverseSwitch="MANIFESTUAC:NO" Name="EnableUAC" DisplayName="启用用户帐户控制(UAC)" Description="指定是否启用用户帐户控制。(/MANIFESTUAC, /MANIFESTUAC:NO)" Category="Manifest File" Switch="MANIFESTUAC:" F1Keyword="VC.Project.VCLinkerTool.EnableUAC">
    <Argument Property="UACExecutionLevel" IsRequired="true"/>
    <Argument Property="UACUIAccess" IsRequired="true" Separator=" "/>
  </BoolProperty>
  <EnumProperty Name="UACExecutionLevel" DisplayName="UAC 执行级别" Description="指定使用用户帐户控制运行时为应用程序请求的执行级别。(/MANIFESTUAC:level=[值])" SwitchPrefix="" Category="Manifest File" F1Keyword="VC.Project.VCLinkerTool.UACExecutionLevel">
    <EnumValue Name="AsInvoker" Switch="level='asInvoker'" DisplayName="asInvoker" Description="UAC 执行级别: 作为调用程序。">
    </EnumValue>
    <EnumValue Name="HighestAvailable" Switch="level='highestAvailable'" DisplayName="highestAvailable" Description="UAC 执行级别: 最高可用。">
    </EnumValue>
    <EnumValue Name="RequireAdministrator" Switch="level='requireAdministrator'" DisplayName="requireAdministrator" Description="UAC 执行级别: 需要管理员。">
    </EnumValue>
  </EnumProperty>
  <BoolProperty ReverseSwitch="uiAccess='false'" Name="UACUIAccess" DisplayName="UAC 绕过 UI 保护" Description="UAC 绕过 UI 保护 : 指定是否绕过桌面上其他窗口的用户界面保护级别。应仅将具有辅助功能的应用程序的此属性设置为“true”。(/MANIFESTUAC:uiAccess=[true | false])" SwitchPrefix="" Category="Manifest File" Switch="uiAccess='true'" F1Keyword="VC.Project.VCLinkerTool.UACUIAccess">
  </BoolProperty>
  <BoolProperty Name="ManifestEmbed" DisplayName="嵌入清单" Description="指定是将清单文件嵌入程序集中还是将其创建为独立的文件。" Category="Manifest File" Switch="manifest:embed" Visible="false" F1Keyword="VC.Project.VCLinkerTool.ManifestEmbed">
  </BoolProperty>
  <StringListProperty Subtype="folder" Name="ManifestInput" DisplayName="清单输入" Description="用于指定需要嵌入的清单。" Category="Manifest File" Switch="manifestinput:" Visible="false" F1Keyword="VC.Project.VCLinkerTool.ManifestInput">
  </StringListProperty>
  <EnumProperty Name="GenerateDebugInformation" DisplayName="生成调试信息" Description="此选项为 .exe 文件或 DLL 启用调试信息创建。" Category="Debugging" F1Keyword="VC.Project.VCLinkerTool.GenerateDebugInformation">
    <EnumValue Name="false" Switch="" DisplayName="否" Description="不生成任何调试信息。">
    </EnumValue>
    <EnumValue Name="true" Switch="DEBUG" DisplayName="生成调试信息" Description="创建适用于向 Microsoft 符号服务器分发的完整程序数据库(PDB)。">
    </EnumValue>
    <EnumValue Name="DebugFastLink" Switch="DEBUG:FASTLINK" DisplayName="生成经过优化以使链接更快的调试信息" Description="生成最适合编辑-链接-调试循环操作的程序数据库(PDB)。 ">
    </EnumValue>
    <EnumValue Name="DebugFull" Switch="DEBUG:FULL" DisplayName="生成经过优化以共享和发布的调试信息" Description="生成最适合编辑-链接-调试循环操作的程序数据库(PDB)。 ">
    </EnumValue>
  </EnumProperty>
  <StringProperty Subtype="file" Name="ProgramDatabaseFile" DisplayName="生成程序数据库文件" Description="默认情况下，当指定 /DEBUG 时，链接器将创建用于保存调试信息的程序数据库(PDB)。PDB 的默认文件名由程序的基名称和 .pdb 扩展名组成。" Category="Debugging" Switch="PDB" Separator=":" F1Keyword="VC.Project.VCLinkerTool.ProgramDatabaseFile">
  </StringProperty>
  <EnumProperty Name="SubSystem" DisplayName="子系统" Description="/SUBSYSTEM 选项告知操作系统如何运行 .exe 文件。子系统的选择会影响链接器将选择的入口点符号(或入口点函数)。" Category="System" F1Keyword="VC.Project.VCLinkerTool.SubSystem">
    <EnumProperty.Arguments>
      <Argument Property="MinimumRequiredVersion" IsRequired="false"/>
    </EnumProperty.Arguments>
    <EnumValue Name="NotSet" Switch="" DisplayName="未设置" Description="未设置子系统。">
    </EnumValue>
    <EnumValue Name="Console" Switch="SUBSYSTEM:CONSOLE" DisplayName="控制台" Description="Win32 字符模式应用程序。操作系统会为控制台应用程序指定一个控制台。如果定义 main 或 wmain，则默认值是 CONSOLE。">
    </EnumValue>
    <EnumValue Name="Windows" Switch="SUBSYSTEM:WINDOWS" DisplayName="窗口" Description="应用程序不需要控制台，原因很可能是它会创建自己的窗口来与用户进行交互。如果定义 WinMain 或 wWinMain，则默认值是 WINDOWS。">
    </EnumValue>
    <EnumValue Name="Native" Switch="SUBSYSTEM:NATIVE" DisplayName="本机" Description="针对 Windows NT 的设备驱动程序。如果指定 /DRIVER:WDM，则默认值是 NATIVE。">
    </EnumValue>
    <EnumValue Name="EFI Application" Switch="SUBSYSTEM:EFI_APPLICATION" DisplayName="EFI 应用程序" Description="EFI 应用程序。">
    </EnumValue>
    <EnumValue Name="EFI Boot Service Driver" Switch="SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER" DisplayName="EFI 启动服务驱动程序" Description="EFI 启动服务驱动程序。">
    </EnumValue>
    <EnumValue Name="EFI ROM" Switch="SUBSYSTEM:EFI_ROM" DisplayName="EFI ROM" Description="EFI ROM。">
    </EnumValue>
    <EnumValue Name="EFI Runtime" Switch="SUBSYSTEM:EFI_RUNTIME_DRIVER" DisplayName="EFI 运行时" Description="EFI 运行时。">
    </EnumValue>
    <EnumValue Name="POSIX" Switch="SUBSYSTEM:POSIX" DisplayName="POSIX" Description="与 Windows NT 中的 POSIX 子系统一起运行的应用程序。">
    </EnumValue>
  </EnumProperty>
  <StringProperty Name="MinimumRequiredVersion" DisplayName="所需的最低版本" Description="指定所需的子系统的最低版本。参数是介于 0 至 65,535 范围内的十进制数。" Category="System" Separator="," F1Keyword="VC.Project.VCLinkerTool.MinimumRequiredVersion">
  </StringProperty>
  <StringProperty Name="HeapReserveSize" DisplayName="堆保留大小" Description="指定虚拟内存中堆分配的合计大小。默认值是 1MB。    (/HEAP:reserve)" Category="System" Switch="HEAP" Separator=":" F1Keyword="VC.Project.VCLinkerTool.HeapReserveSize">
    <Argument Property="HeapCommitSize" IsRequired="false" Separator=","/>
  </StringProperty>
  <StringProperty Name="HeapCommitSize" DisplayName="堆提交大小" Description="指定物理内存中堆分配的合计大小。默认值是 4KB。    (/HEAP:reserve,commit)" Category="System" F1Keyword="VC.Project.VCLinkerTool.HeapCommitSize">
  </StringProperty>
  <StringProperty Name="StackReserveSize" DisplayName="堆栈保留大小" Description="指定虚拟内存中堆栈分配的合计大小。默认值是 1MB。     (/STACK:reserve)" Category="System" Switch="STACK" Separator=":" F1Keyword="VC.Project.VCLinkerTool.StackReserveSize">
    <Argument Property="StackCommitSize" IsRequired="false" Separator=","/>
  </StringProperty>
  <StringProperty Name="StackCommitSize" DisplayName="堆栈提交大小" Description="指定物理内存中堆栈分配的合计大小。默认值是 4KB。     (/STACK:reserve,commit)" Category="System" F1Keyword="VC.Project.VCLinkerTool.StackCommitSize">
  </StringProperty>
  <BoolProperty ReverseSwitch="LARGEADDRESSAWARE:NO" Name="LargeAddressAware" DisplayName="启用大地址" Description="/LARGEADDRESSAWARE 选项通知链接器应用程序可以处理大于 2 GB 的地址。默认情况下，如果未以其他方式在链接器行上指定 /LARGEADDRESSAWARE，则启用 /LARGEADDRESSAWARE:NO。" Category="System" Switch="LARGEADDRESSAWARE" F1Keyword="VC.Project.VCLinkerTool.LargeAddressAware">
  </BoolProperty>
  <BoolProperty ReverseSwitch="TSAWARE:NO" Name="TerminalServerAware" DisplayName="终端服务器" Description="/TSAWARE 选项在程序映像的可选标头中的 IMAGE_OPTIONAL_HEADER DllCharacteristics 字段内设置一个标记。如果设置此标记，则终端服务器将无法对应用程序进行某些更改。" Category="System" Switch="TSAWARE" F1Keyword="VC.Project.VCLinkerTool.TerminalServerAware">
  </BoolProperty>
  <EnumProperty Name="Driver" DisplayName="驱动程序" Description="使用 /DRIVER 链接器选项可生成 Windows NT 内核模式驱动程序。" Category="System" F1Keyword="VC.Project.VCLinkerTool.driver">
    <EnumValue Name="NotSet" Switch="" DisplayName="未设置" Description="默认驱动程序设置。">
    </EnumValue>
    <EnumValue Name="Driver" Switch="Driver" DisplayName="驱动程序" Description="驱动程序">
    </EnumValue>
    <EnumValue Name="UpOnly" Switch="DRIVER:UPONLY" DisplayName="仅 UP" Description="/DRIVER:UPONLY 指示链接器将 IMAGE_FILE_UP_SYSTEM_ONLY 位添加到输出标头中的特征，以指定这是一个单处理器(UP)驱动程序。操作系统将拒绝在多处理器(MP)系统上加载 UP 驱动程序。">
    </EnumValue>
    <EnumValue Name="WDM" Switch="DRIVER:WDM" DisplayName="WDM" Description="/DRIVER:WDM 指示链接器设置可选标头的 DllCharacteristics 字段中的 IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 位。">
    </EnumValue>
  </EnumProperty>
  <BoolProperty ReverseSwitch="OPT:NOREF" Name="OptimizeReferences" DisplayName="引用" Description="/OPT:REF 将消除从未引用过的函数和/或数据，而 /OPT:NOREF 则保留从未引用过的函数和/或数据。 " Category="Optimization" Switch="OPT:REF" F1Keyword="VC.Project.VCLinkerTool.OptimizeReferences">
  </BoolProperty>
  <BoolProperty ReverseSwitch="OPT:NOICF" Name="EnableCOMDATFolding" DisplayName="启用 COMDAT 折叠" Description="使用 /OPT:ICF[=iterations] 可执行相同 COMDAT 折叠。 " Category="Optimization" Switch="OPT:ICF" F1Keyword="VC.Project.VCLinkerTool.EnableCOMDATFolding">
  </BoolProperty>
  <StringProperty Subtype="file" Name="FunctionOrder" DisplayName="函数顺序" Description="/ORDER 选项告知 LINK 通过按预设的顺序将特定的 COMDAT 放置到映像中来优化程序。LINK 按指定的顺序将函数放置到映像中的每一节内。" Category="Optimization" Switch="ORDER" Separator=":@" F1Keyword="VC.Project.VCLinkerTool.FunctionOrder">
  </StringProperty>
  <StringProperty Subtype="file" Name="ProfileGuidedDatabase" DisplayName="按配置优化数据库" Description="指定用于按配置优化的 .pgd 文件。(/PGD)" Category="Optimization" Switch="PGD" Separator=":" F1Keyword="VC.Project.VCLinkerTool.ProfileGuidedDatabase">
  </StringProperty>
  <StringProperty Name="EntryPointSymbol" DisplayName="入口点" Description="/ENTRY 选项将某个入口点函数指定为 .exe 文件或 DLL 的起始地址。" Category="Advanced" Switch="ENTRY" Separator=":" F1Keyword="VC.Project.VCLinkerTool.EntryPointSymbol">
  </StringProperty>
  <BoolProperty Name="NoEntryPoint" DisplayName="无入口点" Description="/NOENTRY 选项是创建纯资源 DLL 所必需的。使用此选项可防止 LINK 将对 _main 的引用链接到 DLL。" Category="Advanced" Switch="NOENTRY" F1Keyword="VC.Project.VCLinkerTool.ResourceOnlyDLL">
  </BoolProperty>
  <StringProperty Name="BaseAddress" DisplayName="基址" Description="设置程序的基址。(/BASE:{address[,size] | @filename,key})" Category="Advanced" Switch="BASE" Separator=":" F1Keyword="VC.Project.VCLinkerTool.BaseAddress">
  </StringProperty>
  <BoolProperty ReverseSwitch="DYNAMICBASE:NO" Name="RandomizedBaseAddress" DisplayName="随机基址" Description="随机基址。(/DYNAMICBASE[:NO])" Category="Advanced" Switch="DYNAMICBASE" F1Keyword="VC.Project.VCLinkerTool.RandomizedBaseAddress">
  </BoolProperty>
  <BoolProperty ReverseSwitch="FIXED:NO" Name="FixedBaseAddress" DisplayName="固定基址" Description="创建只能在其首选基址加载的程序。(/FIXED[:NO])" Category="Advanced" Switch="FIXED" F1Keyword="VC.Project.VCLinkerTool.FixedBaseAddress">
  </BoolProperty>
  <BoolProperty ReverseSwitch="NXCOMPAT:NO" Name="DataExecutionPrevention" DisplayName="数据执行保护(DEP)" Description="将可执行文件标记为经测试与 Windows 数据执行保护功能兼容。(/NXCOMPAT[:NO])" Category="Advanced" Switch="NXCOMPAT" F1Keyword="VC.Project.VCLinkerTool.DataExecutionPrevention">
  </BoolProperty>
  <StringProperty Subtype="file" Name="ImportLibrary" DisplayName="导入库" Description="重写默认导入库名称。(/IMPLIB:filename)" Category="Advanced" Switch="IMPLIB" Separator=":" F1Keyword="VC.Project.VCLinkerTool.ImportLIbrary">
  </StringProperty>
  <StringProperty Name="MergeSections" DisplayName="合并节" Description="/MERGE 选项可组合第一节(源)和第二节(目标)，并将生成的节命名为原目标节的名称。例如 /merge:.rdata=.text。" Category="Advanced" Switch="MERGE" Separator=":" F1Keyword="VC.Project.VCLinkerTool.MergeSections">
  </StringProperty>
  <EnumProperty Name="TargetMachine" DisplayName="目标计算机" Description="/MACHINE 选项指定程序的目标平台。" Category="Advanced" F1Keyword="VC.Project.VCLinkerTool.TargetMachine">
    <EnumValue Name="NotSet" Switch="" DisplayName="未设置">
    </EnumValue>
    <EnumValue Name="MachineARM" Switch="MACHINE:ARM" DisplayName="MachineARM">
    </EnumValue>
    <EnumValue Name="MachineARM64" Switch="MACHINE:ARM64" DisplayName="MachineARM64">
    </EnumValue>
    <EnumValue Name="MachineARM64EC" Switch="MACHINE:ARM64EC" DisplayName="MachineARM64EC">
    </EnumValue>
    <EnumValue Name="MachineARM64X" Switch="MACHINE:ARM64X" DisplayName="MachineARM64X">
    </EnumValue>
    <EnumValue Name="MachineEBC" Switch="MACHINE:EBC" DisplayName="MachineEBC">
    </EnumValue>
    <EnumValue Name="MachineX64" Switch="MACHINE:X64" DisplayName="MachineX64">
    </EnumValue>
    <EnumValue Name="MachineX86" Switch="MACHINE:X86" DisplayName="MachineX86">
    </EnumValue>
  </EnumProperty>
  <IntProperty Name="SectionAlignment" DisplayName="部分的对齐方式" Description="/ALIGN 选项指定程序的线性地址空间内的每个部分的对齐方式。数字变量以字节为单位，并且必须是 2 的幂。" Category="Advanced" Switch="ALIGN" Separator=":" F1Keyword="VC.Project.VCLinkerTool.Alignment">
  </IntProperty>
  <BoolProperty ReverseSwitch="SAFESEH:NO" Name="ImageHasSafeExceptionHandlers" DisplayName="映像具有安全异常处理程序" Description="若指定 /SAFESEH，则链接器将生成映像，但前提是链接器也可以生成映像的安全异常处理程序表。此表为操作系统指定哪些异常处理程序对映像有效。" Category="Advanced" Switch="SAFESEH" F1Keyword="VC.Project.VCLinkerTool.ImageHasSafeExceptionHandlers">
  </BoolProperty>
  <BoolProperty Name="LinkControlFlowGuard" DisplayName="控制流防护" Description="安全检查可帮助检测分配到非法代码块的其他尝试。(/guard:cf)" Category="Advanced" Switch="guard:cf" Visible="false" F1Keyword="VC.Project.VCCLCompilerTool.LinkControlFlowGuard">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <StringProperty Name="AdditionalOptions" DisplayName="附加选项" Description="附加选项。" Category="Command Line" F1Keyword="vc.project.AdditionalOptionsPage">
  </StringProperty>
  <BoolProperty Name="LinkDLL" Switch="DLL" Visible="false">
  </BoolProperty>
  <BoolProperty Name="BuildingInIde" Visible="false">
  </BoolProperty>
</Rule>
