<?xml version="1.0" encoding="utf-8"?>
<!--Copyright, Microsoft Corporation, All rights reserved.-->
<Rule Name="ConfigurationGeneral" DisplayName="常规" PageTemplate="generic" Description="常规" xmlns="http://schemas.microsoft.com/build/2009/properties">
  <Rule.Categories>
    <Category Name="General" DisplayName="常规属性" Description="常规属性"/>
  </Rule.Categories>
  <Rule.DataSource>
    <DataSource Persistence="ProjectFile" Label="Configuration"/>
  </Rule.DataSource>
  
   <StringProperty Name="OutDir" DisplayName="输出目录" Description="指向已编译程序的放置位置的路径。可以包括环境变量。" Category="General" Subtype="folder" F1Keyword="VC.Project.VCConfiguration.OutputDirectory">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" Label=""/>
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty Name="IntDir" DisplayName="中间目录" Description="指向生成中间生成文件(例如 .obj 文件)的位置的相对路径。可以包括环境变量。" Category="General" Subtype="folder" F1Keyword="VC.Project.VCConfiguration.IntermediateDirectory">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" Label=""/>
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty Name="TargetName" DisplayName="目标文件名" Description="指定此项目将生成的程序的文件名。" F1Keyword="VC.Project.VCConfiguration.TargetName" Category="General">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" Label=""/>
    </StringProperty.DataSource>
  </StringProperty>

  <EnumProperty Name="ConfigurationType" DisplayName="配置类型" Description="指定要生成的程序类型(例如可执行文件、静态库，动态库等等)。" Category="General" F1Keyword="VC.Project.VCConfiguration.ConfigurationType">
    <EnumValue Name="Makefile" DisplayName="生成文件" Description="生成文件"/>
    <EnumValue Name="Application" DisplayName="应用程序(.exe)" Description="应用程序(.exe)"/>
    <EnumValue Name="DynamicLibrary" DisplayName="动态库(.dll)" Description="动态库(.dll)"/>
    <EnumValue Name="StaticLibrary" DisplayName="静态库(.lib)" Description="静态库(.lib)"/>
    <EnumValue Name="Utility" DisplayName="实用工具" Description="实用工具"/>
  </EnumProperty>

  <DynamicEnumProperty Name="WindowsTargetPlatformVersion" DisplayName="Windows SDK 版本" Description="指定此项目要使用的 Windows SDK 版本(面向 Windows 的项目需要执行此操作)。选择使用 10.0 并保持为最新安装的 Windows 10 SDK 版本。" Category="General" EnumProvider="PlatformVersionsEx" F1Keyword="VC.Project.VCConfiguration.TargetPlatformVersion">
    <DynamicEnumProperty.DataSource>
      <DataSource Persistence="ProjectFile" Label="Globals" SourceOfDefaultValue="AfterContext" HasConfigurationCondition="False"/>
    </DynamicEnumProperty.DataSource>
  </DynamicEnumProperty>

  <DynamicEnumProperty Name="PlatformToolset" DisplayName="平台工具集" EnumProvider="Toolsets" Description="指定生成此程序时要使用的生成工具。" Category="General" F1Keyword="VC.Project.VCConfiguration.PlatformToolset"/>
  
  <EnumProperty Name="LanguageStandard" DisplayName="C++ 语言标准" Description="确定编译器将强制执行的 C++ 语言标准。建议尽可能使用最新版本。(/std:c++14、/std:c++17、/std:c++20、/std:c++23preview、/std:c++latest)" Category="General" F1Keyword="VC.Project.VCCLCompilerTool.CppLanguageStandard">
    <EnumProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="ClCompile" Label="" HasConfigurationCondition="true"/>
    </EnumProperty.DataSource>
    <EnumValue Name="Default" DisplayName="默认(ISO C++14 标准)"/>
    <EnumValue Name="stdcpp14" Switch="/std:c++14" DisplayName="ISO C++14 标准"/>
    <EnumValue Name="stdcpp17" Switch="/std:c++17" DisplayName="ISO C++17 标准"/>
    <EnumValue Name="stdcpp20" Switch="/std:c++20" DisplayName="ISO C++20 标准"/>
    <EnumValue Name="stdcpp23" Switch="/std:c++23preview" DisplayName="预览 - ISO C++23 标准"/>
    <EnumValue Name="stdcpplatest" Switch="/std:c++latest" DisplayName="预览 - 最新 C++ 工作草案中的功能"/>
  </EnumProperty>

  <EnumProperty Name="LanguageStandard_C" DisplayName="C 语言标准" Description="确定编译器将强制执行的 C 语言标准。建议尽可能使用最新版本。(/std:c11、/std:c17、/std:clatest)" Category="General" F1Keyword="VC.Project.VCCLCompilerTool.CppLanguageStandard">
    <EnumProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="ClCompile" Label="" HasConfigurationCondition="true"/>
    </EnumProperty.DataSource>
    <EnumValue Name="Default" DisplayName="默认(旧 MSVC)"/>
    <EnumValue Name="stdc11" Switch="/std:c11" DisplayName="ISO C11 标准"/>
    <EnumValue Name="stdc17" Switch="/std:c17" DisplayName="ISO C17 (2018)标准"/>
    <EnumValue Name="stdclatest" Switch="std:clatest" DisplayName="预览 - 最新 C 工作草案中的功能"/>
  </EnumProperty>

  <!-- invisible properties to keep backward compatibility if some code is using the rule to get/set properties -->
  <StringProperty Name="SDKDisplayName" DisplayName="目标平台" Description="项目的当前目标平台。" ReadOnly="true" Visible="false" Category="General" F1Keyword="VC.Project.VCConfiguration.AppSupport">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" Label=""/>
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty Name="TargetExt" DisplayName="目标文件扩展名" Description="指定此项目将生成的文件扩展名。(示例: .exe 或 .dll)" F1Keyword="VC.Project.VCConfiguration.TargetExt" Visible="false" Category="General">
                  <StringProperty.DataSource>
                     <DataSource Persistence="ProjectFile" Label=""/>
                  </StringProperty.DataSource>
  </StringProperty>
  <StringListProperty Name="ExtensionsToDeleteOnClean" DisplayName="清除时要删除的扩展名" Description="分号分隔的通配符规范，指定在清除或重新生成时要删除中间目录中的哪些文件。" Category="General" Separator=";" Visible="false" F1Keyword="VC.Project.VCConfiguration.DeleteExtensionsOnClean">
                      <StringListProperty.DataSource>
                            <DataSource Persistence="ProjectFile" Label=""/>
                      </StringListProperty.DataSource>
  </StringListProperty>
  <StringProperty Name="BuildLogFile" DisplayName="生成日志文件" Description="指定启用生成记录时要写入的生成日志文件。" F1Keyword="VC.Project.VCConfiguration.BuildLogFile" Visible="false" Category="General" Default="$(ProjectDir)\$(MSBuildProjectName).log" Subtype="file">
                  <StringProperty.DataSource>
                     <DataSource Persistence="ProjectFile" ItemType="BuildLog" PersistedName="Path"/>
                  </StringProperty.DataSource>
  </StringProperty>
   
  <EnumProperty Name="UseOfMfc" DisplayName="MFC 的使用" Description="指定配置使用 MFC 的方式。" Visible="false" Category="Geleral" F1Keyword="VC.Project.VCConfiguration.useOfMfc">
    <EnumValue Name="false" DisplayName="使用标准 Windows 库" Description="使用标准 Windows 库"/>
    <EnumValue Name="Static" DisplayName="在静态库中使用 MFC" Description="在静态库中使用 MFC"/>
    <EnumValue Name="Dynamic" DisplayName="在共享 DLL 中使用 MFC" Description="在共享 DLL 中使用 MFC"/>
  </EnumProperty>
  <EnumProperty Name="UseOfAtl" DisplayName="ATL 的使用" Description="指定配置使用 ATL 的方式。" Category="General" Visible="false" F1Keyword="VC.Project.VCConfiguration.useOfATL">
    <EnumValue Name="false" DisplayName="不使用 ATL" Description="不使用 ATL"/>
    <EnumValue Name="Static" DisplayName="静态链接到 ATL" Description="静态链接到 ATL"/>
    <EnumValue Name="Dynamic" DisplayName="动态链接到 ATL" Description="动态链接到 ATL"/>
  </EnumProperty>
  <EnumProperty Name="CharacterSet" DisplayName="字符集" Description="通知编译器使用指定的字符集；帮助解决本地化问题。" Category="General" Visible="false" F1Keyword="VC.Project.VCConfiguration.CharacterSet">
    <EnumValue Name="NotSet" DisplayName="未设置" Description="未设置"/>
    <EnumValue Name="Unicode" DisplayName="使用 Unicode 字符集" Description="使用 Unicode 字符集"/>
    <EnumValue Name="MultiByte" DisplayName="使用多字节字符集" Description="使用多字节字符集"/>
  </EnumProperty>
  <EnumProperty Name="CLRSupport" DisplayName="公共语言运行时支持" Description="指定此配置是否支持公共语言运行时。这与其他某些设置(例如运行时检查)不兼容。有关完整的冲突列表，请参见 /clr 系列 C++ 编译器开关的帮助。" Category="General" Visible="false" F1Keyword="VC.Project.VCConfiguration.ManagedExtensions">
    <EnumValue Name="false" DisplayName="无公共语言运行时支持" Description="无公共语言运行时支持"/>
    <EnumValue Name="true" DisplayName="公共语言运行时支持(/clr)" Description="公共语言运行时支持(/clr)"/>
    <EnumValue Name="Pure" DisplayName="纯 MSIL 公共语言运行时支持(/clr:pure)" Description="纯 MSIL 公共语言运行时支持(/clr:pure)"/>
    <EnumValue Name="Safe" DisplayName="安全 MSIL 公共语言运行时支持(/clr:safe)" Description="安全 MSIL 公共语言运行时支持(/clr:safe)"/>
  </EnumProperty>
  <StringProperty Name="TargetFrameworkVersion" DisplayName=".NET 目标框架版本" Description="项目所面向的 .NET Framework 版本。这仅在设置了“公共语言运行时支持”时适用。" Category="General" Visible="false" F1Keyword="VC.Project.TargetFrameworkVersion">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" Label="Globals" HasConfigurationCondition="False"/>
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty Name="TargetFramework" Visible="false">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" Label="Globals" HasConfigurationCondition="False"/>
    </StringProperty.DataSource>
  </StringProperty>
  <EnumProperty Name="WholeProgramOptimization" DisplayName="全程序优化" Description="指定程序将跨 .obj 边界进行优化；当开启 C/C++ 优化时效果最好。" Category="General" Visible="false" F1Keyword="VC.Project.VCConfiguration.WholeProgramOptimization">
    <EnumValue Name="false" DisplayName="无全程序优化" Description="无全程序优化"/>
    <EnumValue Name="true" DisplayName="使用链接时间代码生成" Description="使用链接时间代码生成"/>
    <EnumValue Name="PGInstrument" DisplayName="按配置优化 - 检测" Description="按配置优化 - 检测"/>
    <EnumValue Name="PGOptimize" DisplayName="按配置优化 - 优化" Description="按配置优化 - 优化"/>
    <EnumValue Name="PGUpdate" DisplayName="按配置优化 - 更新" Description="按配置优化 - 更新"/>
  </EnumProperty>
  <BoolProperty Name="WindowsAppContainer" DisplayName="Windows 应用商店应用支持" Description="使此项目能够支持 Windows 应用商店应用。" Category="General" Visible="false" F1Keyword="VC.Project.VCConfiguration.AppSupport"/>
  <BoolProperty Name="UseDebugLibraries" DisplayName="使用调试库" Description="指定此配置是否应使用调试库和调试开关" Category="General" Visible="false">
  </BoolProperty>
  <BoolProperty Name="EnableManagedIncrementalBuild" DisplayName="启用托管增量生成" Description="使用 metagen 启用托管增量生成方案。" Category="General" Visible="false" F1Keyword="VC.Project.VCConfiguration.EnableManagedIncrementalBuild">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" Label=""/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <StringProperty Name="_ProjectFileVersion" DisplayName="项目文件版本" Description="指定用于创建此项目文件的转换工具的版本。" Category="General" Visible="false">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile"/>
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty Name="ProjectGuid" Visible="False">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" Label="Globals" HasConfigurationCondition="False"/>
    </StringProperty.DataSource>
  </StringProperty>
  <DynamicEnumProperty Name="TargetFrameworkMoniker" DisplayName="目标框架名字对象" EnumProvider="TargetFrameworkMoniker" Visible="false"/>
  <StringProperty Name="TargetPath" Visible="False"/>
  <StringProperty Name="MSBuildProjectDirectory" Visible="false"/>
  <StringProperty Name="PackageAction" Visible="false" Description="将项目打包时使用的 MSBuild 目标。"/>
  <StringProperty Name="DefaultContentType" Visible="false" Description="添加文件时使用的默认内容类型名称。"/>
  <StringProperty Name="VCInstallDir" Visible="false"/>
  <StringProperty Name="VCIDEInstallDir" Visible="false"/>
  <StringProperty Name="VCToolsInstallDir" Visible="false"/>
  <StringProperty Name="VSInstallDir" Visible="false"/>
  <StringProperty Name="Platform" Visible="false"/>
  <StringProperty Name="Configuration" Visible="false"/>
  <StringProperty Name="DebuggerSymbolsPath" Visible="false"/>
  <StringProperty Name="AssemblySearchPaths" Visible="false"/>
  <StringProperty Name="DefaultPlatformToolset" Visible="false"/>
  <BoolProperty Name="EnableDesignTimeBuild" Visible="false"/>
  <BoolProperty Name="AppContainerApplication" Visible="false"/>
  <EnumProperty Name="TargetRuntime" Visible="false">
    <EnumValue Name="Managed"/>
    <EnumValue Name="Native"/>
    <EnumValue Name="AppHost" DisplayName="Windows 应用程序"/>
  </EnumProperty>
  <StringProperty Name="AddItemTemplateGuid" Visible="false"/>
  <BoolProperty Name="ContainsStartupTask" Visible="false"/>
  <StringProperty Name="ProjectSubType" Visible="False">
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" Label="Globals" HasConfigurationCondition="False"/>
    </StringProperty.DataSource>
  </StringProperty>
</Rule>
