<?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>
  <EnumProperty Name="ShowProgress" DisplayName="显示进度" Description="打印链接器进度消息" Category="General" F1Keyword="VC.Project.VCLinkerTool.ShowProgress">
    <EnumValue Name="NotSet" Switch="" DisplayName="未设置" Description="无详细信息。">
    </EnumValue>
    <EnumValue Name="LinkVerbose" Switch="VERBOSE" DisplayName="显示所有进度消息" Description="显示所有进度消息。">
    </EnumValue>
    <EnumValue Name="LinkVerboseLib" Switch="VERBOSE:Lib" DisplayName="对于搜索的库" Description="显示只指示所搜索的库的进度消息。">
    </EnumValue>
    <EnumValue Name="LinkVerboseICF" Switch="VERBOSE:ICF" DisplayName="关于优化链接期间的 COMDAT 折叠" Description="显示有关优化链接期间的 COMDAT 折叠的信息。">
    </EnumValue>
    <EnumValue Name="LinkVerboseREF" Switch="VERBOSE:REF" DisplayName="关于优化链接期间移除的数据" Description="显示有关优化链接期间移除的函数和数据的信息。">
    </EnumValue>
    <EnumValue Name="LinkVerboseSAFESEH" Switch="VERBOSE:SAFESEH" DisplayName="关于与 SEH 不兼容的模块" Description="显示有关与安全异常处理不兼容的模块的信息 。">
    </EnumValue>
    <EnumValue Name="LinkVerboseCLR" Switch="VERBOSE:CLR" DisplayName="关于托管代码相关的链接器活动" Description="显示有关托管代码相关的链接器活动的信息。">
    </EnumValue>
  </EnumProperty>
  <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="SuppressStartupBanner" DisplayName="取消显示启动版权标志" Description="/NOLOGO 选项禁止显示版权消息和版本号。" Category="General" Switch="NOLOGO" F1Keyword="VC.Project.VCLinkerTool.SuppressStartupBanner">
  </BoolProperty>
  <BoolProperty Name="IgnoreImportLibrary" DisplayName="忽略导入库" Description="指定不应将由此配置生成的导入库导入到依赖项目中。" Category="General" 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="LTCG:NOSTATUS" Name="LinkStatus" DisplayName="链接状态" Description="指定链接器是否应显示进度指示器，它显示完成的链接百分比。默认情况下不显示此状态信息。(/LTCG:STATUS|LTCG:NOSTATUS)" Category="General" Switch="LTCG:STATUS" F1Keyword="VC.Project.VCLinkerTool.LinkStatus">
  </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>
  <EnumProperty Name="CreateHotPatchableImage" DisplayName="创建可热修补映像" Description="准备映像进行热修补。" Category="General" F1Keyword="VC.Project.VCLinkerTool.CreateHotPatchableImage">
    <EnumValue Name="Enabled" Switch="FUNCTIONPADMIN" DisplayName="已启用" Description="准备映像进行热修补。">
    </EnumValue>
    <EnumValue Name="X86Image" Switch="FUNCTIONPADMIN:5" DisplayName="仅 X86 映像" Description="准备 X86 映像进行热修补。">
    </EnumValue>
    <EnumValue Name="X64Image" Switch="FUNCTIONPADMIN:6" DisplayName="仅 X64 映像" Description="准备 X64 映像进行热修补。">
    </EnumValue>
    <EnumValue Name="ItaniumImage" Switch="FUNCTIONPADMIN:16" DisplayName="仅 Itanium 映像" Description="准备 Itanium 映像进行热修补。">
    </EnumValue>
  </EnumProperty>
  <StringProperty Name="SpecifySectionAttributes" DisplayName="指定节特性" Description="/SECTION 选项将更改节的特性，以重写编译节的 .obj 文件时设置的特性。" Category="General" Switch="SECTION" Separator=":" F1Keyword="VC.Project.VCLinkerTool.SpecifySectionAttributes">
  </StringProperty>
  <StringProperty Subtype="file" Name="MSDOSStubFileName" DisplayName="MS-DOS 存根(Stub)文件名" Description="/STUB 选项可将 MS-DOS 存根(Stub)程序附加到 Win32 程序。" Category="General" Switch="STUB" Separator=":" Visible="false">
  </StringProperty>
  <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="AddModuleNamesToAssembly" DisplayName="将模块添加到程序集" Description="/ASSEMBLYMODULE 选项允许你将模块引用添加到程序集中。模块中的类型信息将不可用于已添加模块引用的程序集程序。但是，模块中的类型信息将可用于引用该程序集的所有程序。" Category="Input" Switch="ASSEMBLYMODULE:" F1Keyword="VC.Project.VCLinkerTool.AddModuleNamesToAssembly">
  </StringListProperty>
  <StringListProperty Subtype="file" Name="EmbedManagedResourceFile" DisplayName="嵌入托管资源文件" Description="/ASSEMBLYRESOURCE 可将资源文件嵌入到输出文件中。" Category="Input" Switch="ASSEMBLYRESOURCE:" F1Keyword="VC.Project.VCLinkerTool.EmbedManagedResourceFile">
  </StringListProperty>
  <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>
  <StringListProperty Subtype="file" Name="AssemblyLinkResource" DisplayName="程序集链接资源" Description="/ASSEMBLYLINKRESOURCE 选项创建指向输出文件中的 .NET Framework 资源的链接；资源文件不会放入输出文件中。" Category="Input" Switch="ASSEMBLYLINKRESOURCE:" F1Keyword="VC.Project.VCLinkerTool.AssemblyLinkResource">
  </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>
  <BoolProperty Name="FullProgramDatabaseFile" DisplayName="生成完整的程序数据库文件" Description="指定 /Debug:fastlink 后，此选项将从生成的部分 PDB 中生成完整的 PDB。完整的 PDB 允许与其他人共享二进制文件及 PDB。" Category="Debugging" Visible="false" F1Keyword="VC.Project.VCLinkerTool.FullProgramDatabaseFile">
  </BoolProperty>
  <StringProperty Subtype="file" Name="StripPrivateSymbols" DisplayName="去除私有符号" Description="当使用任何可生成 PDB 文件的编译器或链接器选项(/DEBUG、/Z7、/Zd 或 /Zi)生成程序映像时，/PDBSTRIPPED 选项将创建另一个程序数据库(PDB)文件。" Category="Debugging" Switch="PDBSTRIPPED" Separator=":" F1Keyword="VC.Project.VCLinkerTool.StripPrivateSymbols">
  </StringProperty>
  <BoolProperty Name="GenerateMapFile" DisplayName="生成映射文件" Description="/MAP 选项告知链接器创建映射文件。" Category="Debugging" Switch="MAP" F1Keyword="VC.Project.VCLinkerTool.GenerateMapFile">
    <Argument Property="MapFileName" IsRequired="false"/>
  </BoolProperty>
  <StringProperty Subtype="file" Name="MapFileName" DisplayName="映射文件名" Description="用户指定的映射文件的名称。该名称将会替换默认名称。" Category="Debugging" Separator=":" F1Keyword="VC.Project.VCLinkerTool.MapFileName">
  </StringProperty>
  <BoolProperty Name="MapExports" DisplayName="映射导出" Description="/MAPINFO 选项告知链接器在映射文件中包括指定的信息，该映射文件是在您指定 /MAP 选项时创建的。EXPORTS 告知链接器包括导出的函数。" Category="Debugging" Switch="MAPINFO:EXPORTS" F1Keyword="VC.Project.VCLinkerTool.MapExports">
  </BoolProperty>
  <BoolProperty ReverseSwitch="ASSEMBLYDEBUG:DISABLE" Name="AssemblyDebug" DisplayName="可调试程序集" Description="/ASSEMBLYDEBUG 发出带有调试信息跟踪的 DebuggableAttribute 特性并禁用 JIT 优化。" Category="Debugging" Switch="ASSEMBLYDEBUG" F1Keyword="VC.Project.VCLinkerTool.AssemblyDebug">
  </BoolProperty>
  <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>
  <BoolProperty Name="SwapRunFromCD" DisplayName="从 CD 交换运行" Description="/SWAPRUN 选项告知操作系统首先将链接器输出复制到一个交换文件，然后从该文件中运行映像。这是 Windows NT 4.0 (及更高版本)的一项功能。如果指定 CD，则操作系统会将可移动磁盘上的映像复制到一个页面文件中，然后再加载该映像。" Category="System" Switch="SWAPRUN:CD" F1Keyword="VC.Project.VCLinkerTool.SwapRunFromCD">
  </BoolProperty>
  <BoolProperty Name="SwapRunFromNET" DisplayName="从网络交换运行" Description="/SWAPRUN 选项告知操作系统首先将链接器输出复制到一个交换文件，然后从该文件中运行映像。这是 Windows NT 4.0 (及更高版本)的一项功能。如果指定 NET，则操作系统首先将二进制文件映像从网络位置复制到一个交换文件，然后从该文件中加载该映像。此选项对通过网络运行应用程序的情况非常有用。" Category="System" Switch="SWAPRUN:NET" F1Keyword="VC.Project.VCLinkerTool.SwapRunFromNet">
  </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>
  <EnumProperty Name="LinkTimeCodeGeneration" DisplayName="链接时间代码生成" Description="指定链接时间代码生成。" Category="Optimization" F1Keyword="VC.Project.VCLinkerTool.LinkTimeCodeGeneration">
    <EnumValue Name="Default" Switch="" DisplayName="默认设置" Description="默认 LTCG 设置。">
    </EnumValue>
    <EnumValue Name="UseFastLinkTimeCodeGeneration" Switch="LTCG:incremental" DisplayName="使用快速链接时间代码生成" Description="使用链接时间代码生成。">
    </EnumValue>
    <EnumValue Name="UseLinkTimeCodeGeneration" Switch="LTCG" DisplayName="使用链接时间代码生成" Description="使用链接时间代码生成。">
    </EnumValue>
    <EnumValue Name="PGInstrument" Switch="LTCG:PGInstrument" DisplayName="按配置优化 - 检测" Description="指定链接时间代码生成。">
    </EnumValue>
    <EnumValue Name="PGOptimization" Switch="LTCG:PGOptimize" DisplayName="按配置优化 - 优化" Description="指定链接器应使用在运行检测的二进制文件后创建的配置文件数据，以创建优化的映像。">
    </EnumValue>
    <EnumValue Name="PGUpdate" Switch="LTCG:PGUpdate" DisplayName="按配置优化 - 更新" Description="允许使用根据 :PGINSTRUMENT 阶段指定的内容添加或修改的输入文件的列表，并跟踪列表。">
    </EnumValue>
  </EnumProperty>
  <StringProperty Subtype="file" Name="MidlCommandFile" DisplayName="MIDL 命令" Description="指定 MIDL 命令行选项。(/MIDL:@responsefile)" Category="Embedded IDL" Switch="MIDL" Separator=":@" F1Keyword="VC.Project.VCLinkerTool.MidlCommandFile">
  </StringProperty>
  <BoolProperty Name="IgnoreEmbeddedIDL" DisplayName="忽略嵌入的 IDL" Description="/IGNOREIDL 选项指定不应将源代码中的任何 IDL 特性处理到 .idl 文件中。" Category="Embedded IDL" Switch="IGNOREIDL" F1Keyword="VC.Project.VCLinkerTool.IgnoreEmbeddedIDL">
  </BoolProperty>
  <StringProperty Subtype="file" Name="MergedIDLBaseFileName" DisplayName="合并的 IDL 基文件名" Description="/IDLOUT 选项指定 .idl 文件的名称和扩展名。" Category="Embedded IDL" Switch="IDLOUT" Separator=":" F1Keyword="VC.Project.VCLinkerTool.MergedIDLBaseFileName">
  </StringProperty>
  <StringProperty Subtype="file" Name="TypeLibraryFile" DisplayName="类型库" Description="/TLBOUT 选项指定 .tlb 文件的名称和扩展名。" Category="Embedded IDL" Switch="TLBOUT" Separator=":" F1Keyword="VC.Project.VCLinkerTool.TypeLibraryFile">
  </StringProperty>
  <IntProperty Name="TypeLibraryResourceID" DisplayName="TypeLib 资源 ID" Description="允许您指定链接器生成的类型库的资源 ID。(/TLBID:id)" Category="Embedded IDL" Switch="TLBID" Separator=":" F1Keyword="VC.Project.VCLinkerTool.TypeLibraryResourceID">
  </IntProperty>
  <BoolProperty Name="AppContainer" Category="Windows Metadata" Switch="APPCONTAINER" Visible="false">
  </BoolProperty>
  <EnumProperty Name="GenerateWindowsMetadata" DisplayName="生成 Windows 元数据" Description="启用或禁用 Windows 元数据的生成操作。" Category="Windows Metadata" F1Keyword="VC.Project.VCLinkerTool.GenerateWindowsMetadata">
    <EnumValue Name="true" Switch="WINMD" DisplayName="是" Description="启用 Windows 元数据文件的生成。">
    </EnumValue>
    <EnumValue Name="false" Switch="WINMD:NO" DisplayName="否" Description="禁用 Windows 元数据文件的生成操作。">
    </EnumValue>
  </EnumProperty>
  <StringProperty Subtype="file" Name="WindowsMetadataFile" DisplayName="Windows 元数据文件" Description="/WINMDFILE 选项开关。" Category="Windows Metadata" Switch="WINMDFILE" Separator=":" F1Keyword="VC.Project.VCLinkerTool.GenerateWindowsMetadataFile">
  </StringProperty>
  <StringProperty Subtype="file" Name="WindowsMetadataLinkKeyFile" DisplayName="Windows 元数据密钥文件" Description="指定用于对 Windows 元数据进行签名的密钥或密钥对。(/WINMDKEYFILE:filename)" Category="Windows Metadata" Switch="WINMDKEYFILE" Separator=":" F1Keyword="VC.Project.VCLinkerTool.WINMDKeyFile">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="" Label="" HasConfigurationCondition="true"/>
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty Subtype="file" Name="WindowsMetadataKeyContainer" DisplayName="Windows 元数据密钥容器" Description="指定用于对 Windows 元数据进行签名的密钥容器。(/WINMDKEYCONTAINER:name)" Category="Windows Metadata" Switch="WINMDKEYCONTAINER" Separator=":" F1Keyword="VC.Project.VCLinkerTool.WINMDKEYCONTAINER">
  </StringProperty>
  <BoolProperty ReverseSwitch="WINMDDELAYSIGN:NO" Name="WindowsMetadataLinkDelaySign" DisplayName="Windows 元数据延迟签名" Description="对 Windows 元数据进行部分签名。如果只需要将公钥放入 Windows 元数据中，则使用 /WINMDDELAYSIGN。默认值为 /WINMDDELAYSIGN:NO。" Category="Windows Metadata" Switch="WINMDDELAYSIGN" F1Keyword="VC.Project.VCLinkerTool.WINMDDelaySign">
  </BoolProperty>
  <EnumProperty Name="WindowsMetadataSignHash" DisplayName="Windows 元数据签名哈希" Description="为链接器指定用于对签名密钥进行哈希处理的算法。( /WINMDSIGNHASH : [ SHA1 | SHA256| SHA384| SHA512] )。" Category="Windows Metadata" Switch="WINMDSIGNHASH:" Visible="false" F1Keyword="VC.Project.VCLinkerTool.WINMDSignHash">
    <EnumValue Name="SHA1" Switch="WINMDSIGNHASH:SHA1" DisplayName="SHA1">
    </EnumValue>
    <EnumValue Name="SHA256" Switch="WINMDSIGNHASH:SHA256" DisplayName="SHA256">
    </EnumValue>
    <EnumValue Name="SHA384" Switch="WINMDSIGNHASH:SHA384" DisplayName="SHA384">
    </EnumValue>
    <EnumValue Name="SHA512" Switch="WINMDSIGNHASH:SHA512" DisplayName="SHA512">
    </EnumValue>
  </EnumProperty>
  <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>
  <BoolProperty Name="SetChecksum" DisplayName="设置校验和" Description="/RELEASE 选项将在 .exe 文件头中设置校验和。" Category="Advanced" Switch="RELEASE" F1Keyword="VC.Project.VCLinkerTool.SetChecksum">
  </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>
  <BoolProperty Name="TurnOffAssemblyGeneration" DisplayName="关闭程序集生成" Description="/NOASSEMBLY 选项告知链接器创建当前输出文件的映像(但不包含 .NET Framework 程序集)。" Category="Advanced" Switch="NOASSEMBLY" F1Keyword="VC.Project.VCLinkerTool.TurnOffAssemblyGeneration">
  </BoolProperty>
  <BoolProperty Name="SupportUnloadOfDelayLoadedDLL" DisplayName="卸载延迟加载的 DLL" Description="UNLOAD 限定符告知延迟加载 Helper 函数支持显式卸载 DLL。(/DELAY:UNLOAD)" Category="Advanced" Switch="DELAY:UNLOAD" F1Keyword="VC.Project.VCLinkerTool.SupportUnloadOfDelayLoadedDLL">
  </BoolProperty>
  <BoolProperty Name="SupportNobindOfDelayLoadedDLL" DisplayName="取消绑定延迟加载的 DLL" Description="NOBIND 限定符告知链接器不要在最终映像中包括可绑定的 IAT。默认设置是为延迟加载的 DLL 创建可绑定的 IAT。(/DELAY:NOBIND)" Category="Advanced" Switch="DELAY:NOBIND" F1Keyword="VC.Project.VCLinkerTool.SupportNobindOfDelayLoadedDLL">
  </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="MachineEBC" Switch="MACHINE:EBC" DisplayName="MachineEBC">
    </EnumValue>
    <EnumValue Name="MachineIA64" Switch="MACHINE:IA64" DisplayName="MachineIA64">
    </EnumValue>
    <EnumValue Name="MachineMIPS" Switch="MACHINE:MIPS" DisplayName="MachineMIPS">
    </EnumValue>
    <EnumValue Name="MachineMIPS16" Switch="MACHINE:MIPS16" DisplayName="MachineMIPS16">
    </EnumValue>
    <EnumValue Name="MachineMIPSFPU" Switch="MACHINE:MIPSFPU" DisplayName="MachineMIPSFPU">
    </EnumValue>
    <EnumValue Name="MachineMIPSFPU16" Switch="MACHINE:MIPSFPU16" DisplayName="MachineMIPSFPU16">
    </EnumValue>
    <EnumValue Name="MachineSH4" Switch="MACHINE:SH4" DisplayName="MachineSH4">
    </EnumValue>
    <EnumValue Name="MachineTHUMB" Switch="MACHINE:THUMB" DisplayName="MachineTHUMB">
    </EnumValue>
    <EnumValue Name="MachineX64" Switch="MACHINE:X64" DisplayName="MachineX64">
    </EnumValue>
    <EnumValue Name="MachineX86" Switch="MACHINE:X86" DisplayName="MachineX86">
    </EnumValue>
  </EnumProperty>
  <BoolProperty Name="Profile" DisplayName="配置文件" Description="生成可与性能工具探查器一起使用的输出文件。需要设置 GenerateDebugInformation (/DEBUG)。(/PROFILE)" Category="Advanced" Switch="PROFILE" F1Keyword="VC.Project.VCLinkerTool.Profile">
  </BoolProperty>
  <EnumProperty Name="CLRThreadAttribute" DisplayName="CLR 线程特性" Description="显式指定用于 CLR 程序的入口点的线程特性。" Category="Advanced" F1Keyword="VC.Project.VCLinkerTool.CLRThreadAttribute">
    <EnumValue Name="MTAThreadingAttribute" Switch="CLRTHREADATTRIBUTE:MTA" DisplayName="MTA 线程特性" Description="将 MTAThreadAttribute 特性应用于程序的入口点。">
    </EnumValue>
    <EnumValue Name="STAThreadingAttribute" Switch="CLRTHREADATTRIBUTE:STA" DisplayName="STA 线程特性" Description="将 STAThreadAttribute 特性应用于程序的入口点。">
    </EnumValue>
    <EnumValue Name="DefaultThreadingAttribute" Switch="CLRTHREADATTRIBUTE:NONE" DisplayName="默认线程特性" Description="等同于不指定 /CLRTHREADATTRIBUTE。让公共语言运行时(CLR)设置默认线程特性。">
    </EnumValue>
  </EnumProperty>
  <EnumProperty Name="CLRImageType" DisplayName="CLR 映像类型" Description="设置 CLR 映像的类型(IJW、纯或安全)。" Category="Advanced" F1Keyword="VC.Project.VCLinkerTool.CLRImageType">
    <EnumValue Name="ForceIJWImage" Switch="CLRIMAGETYPE:IJW" DisplayName="强制 IJW 映像">
    </EnumValue>
    <EnumValue Name="ForcePureILImage" Switch="CLRIMAGETYPE:PURE" DisplayName="强制纯 IL 映像">
    </EnumValue>
    <EnumValue Name="ForceSafeILImage" Switch="CLRIMAGETYPE:SAFE" DisplayName="强制安全 IL 映像">
    </EnumValue>
    <EnumValue Name="Default" Switch="" DisplayName="默认映像类型">
    </EnumValue>
  </EnumProperty>
  <StringProperty Subtype="file" Name="LinkKeyFile" DisplayName="密钥文件" Description="指定用于对程序集进行签名的密钥或密钥对。(/KEYFILE:filename)" Category="Advanced" Switch="KEYFILE" Separator=":" F1Keyword="VC.Project.VCLinkerTool.KeyFile">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="" Label="" HasConfigurationCondition="true"/>
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty Subtype="file" Name="KeyContainer" DisplayName="密钥容器" Description="指定用于对程序集进行签名的密钥容器。(/KEYCONTAINER:name)" Category="Advanced" Switch="KEYCONTAINER" Separator=":" F1Keyword="VC.Project.VCLinkerTool.KeyContainer">
  </StringProperty>
  <BoolProperty ReverseSwitch="DELAYSIGN:NO" Name="LinkDelaySign" DisplayName="延迟签名" Description="对程序集进行部分签名。如果只希望将公钥放入程序集中，则使用 /DELAYSIGN。默认值是 /DELAYSIGN:NO。" Category="Advanced" Switch="DELAYSIGN" F1Keyword="VC.Project.VCLinkerTool.DelaySign">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <EnumProperty Name="SignHash" DisplayName="CLR 签名哈希" Description="为链接器指定用于对签名密钥进行哈希处理的算法。( /CLRSIGNHASH : [ SHA1 | SHA256| SHA384| SHA512] )。" Category="Advanced" Switch="CLRSIGNHASH:" Visible="false" F1Keyword="VC.Project.VCLinkerTool.SignHash">
    <EnumValue Name="SHA1" Switch="CLRSIGNHASH:SHA1" DisplayName="SHA1">
    </EnumValue>
    <EnumValue Name="SHA256" Switch="CLRSIGNHASH:SHA256" DisplayName="SHA256">
    </EnumValue>
    <EnumValue Name="SHA384" Switch="CLRSIGNHASH:SHA384" DisplayName="SHA384">
    </EnumValue>
    <EnumValue Name="SHA512" Switch="CLRSIGNHASH:SHA512" DisplayName="SHA512">
    </EnumValue>
  </EnumProperty>
  <BoolProperty ReverseSwitch="CLRUNMANAGEDCODECHECK:NO" Name="CLRUnmanagedCodeCheck" DisplayName="CLR 非托管代码检查" Description="/CLRUNMANAGEDCODECHECK 指定链接器是否将 SuppressUnmanagedCodeSecurityAttribute 应用到链接器生成的从托管代码到本机 DLL 的 PInvoke 调用。" Category="Advanced" Switch="CLRUNMANAGEDCODECHECK" F1Keyword="VC.Project.VCLinkerTool.CLRUnmanagedCodeCheck">
  </BoolProperty>
  <BoolProperty Name="DetectOneDefinitionRule" DisplayName="检测单个定义规则违反情况" Description="针对用户定义的类型检测单个定义规则违反情况。此选项需要每个模块和程序中的调试信息(Zi/ZI/Z7 和 DEBUG)来诊断单个定义规则违反情况。(/ODR)" Category="Advanced" Switch="ODR" Visible="false" F1Keyword="VC.Project.VCLinkerTool.DetectOneDefinitionRule">
  </BoolProperty>
  <EnumProperty Name="LinkErrorReporting" DisplayName="错误报告" Description="允许您直接向 Visual C++ 团队提供内部编译器错误(ICE)信息。" Category="Advanced" F1Keyword="VC.Project.VCLinkerTool.ErrorReporting">
    <EnumValue Name="PromptImmediately" Switch="ERRORREPORT:PROMPT" DisplayName="立即提示" Description="立即提示。">
    </EnumValue>
    <EnumValue Name="QueueForNextLogin" Switch="ERRORREPORT:QUEUE" DisplayName="排队等候下一次登录" Description="排队等候下一次登录。">
    </EnumValue>
    <EnumValue Name="SendErrorReport" Switch="ERRORREPORT:SEND" DisplayName="发送错误报告" Description="发送错误报告。">
    </EnumValue>
    <EnumValue Name="NoErrorReport" Switch="ERRORREPORT:NONE" DisplayName="无错误报告" Description="无错误报告。">
    </EnumValue>
  </EnumProperty>
  <IntProperty Name="SectionAlignment" DisplayName="部分的对齐方式" Description="/ALIGN 选项指定程序的线性地址空间内的每个部分的对齐方式。数字变量以字节为单位，并且必须是 2 的幂。" Category="Advanced" Switch="ALIGN" Separator=":" F1Keyword="VC.Project.VCLinkerTool.Alignment">
  </IntProperty>
  <EnumProperty Name="CLRSupportLastError" DisplayName="保留 PInvoke 调用的最后一个错误代码" Description="/CLRSUPPORTLASTERROR 默认为启用，它将保留通过 P/Invoke 机制调用的函数的最后一个错误代码，该机制允许您通过用 /clr 编译的代码调用 DLL 中的本机函数。" Category="Advanced" F1Keyword="VC.Project.VCLinkerTool.CLRSupportLastError">
    <EnumValue Name="Enabled" Switch="CLRSupportLastError" DisplayName="已启用" Description="启用 CLRSupportLastError。">
    </EnumValue>
    <EnumValue Name="Disabled" Switch="CLRSupportLastError:NO" DisplayName="已禁用" Description="禁用 CLRSupportLastError。">
    </EnumValue>
    <EnumValue Name="SystemDlls" Switch="CLRSupportLastError:SYSTEMDLL" DisplayName="仅系统 Dll" Description="仅为系统 Dll 启用 CLRSupportLastError。">
    </EnumValue>
  </EnumProperty>
  <BoolProperty ReverseSwitch="SAFESEH:NO" Name="ImageHasSafeExceptionHandlers" DisplayName="映像具有安全异常处理程序" Description="若指定 /SAFESEH，则链接器将生成映像，但前提是链接器也可以生成映像的安全异常处理程序表。此表为操作系统指定哪些异常处理程序对映像有效。" Category="Advanced" Switch="SAFESEH" F1Keyword="VC.Project.VCLinkerTool.ImageHasSafeExceptionHandlers">
  </BoolProperty>
  <EnumProperty Name="LinkControlFlowGuard" DisplayName="控制流防护" Description="安全检查可帮助检测分配到非法代码块的其他尝试。(/guard:cf)" Category="Advanced" Visible="false" F1Keyword="VC.Project.VCCLCompilerTool.LinkControlFlowGuard">
    <EnumProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="" Label="" HasConfigurationCondition="true"/>
    </EnumProperty.DataSource>
    <EnumValue Name="Guard" Switch="guard:cf" DisplayName="启用临界安全检查" Description="启用带防护的安全检查(/guard:cf)">
    </EnumValue>
  </EnumProperty>
  <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>
