<?xml version="1.0" encoding="utf-8"?>
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE.md file in the project root for more information. -->
<Rule Name="Build" Description="指定控制如何生成项目的属性。" DisplayName="生成" PageTemplate="generic" Order="200" xmlns="http://schemas.microsoft.com/build/2009/properties">
  <Rule.Categories>
    <Category Name="General" DisplayName="常规" />
    <Category Name="ErrorsAndWarnings" Description="为生成过程配置错误和警告选项。" DisplayName="错误和警告" />
    <Category Name="Output" Description="配置生成过程的输出选项。" DisplayName="输出" />
  </Rule.Categories>
  <Rule.DataSource>
    <DataSource Persistence="ProjectFile" SourceOfDefaultValue="AfterContext" HasConfigurationCondition="True" />
  </Rule.DataSource>
  <StringProperty Name="DefineConstants" DisplayName="条件编译符号" Description="指定要在其上执行条件编译的符号。使用分号(&quot;;&quot;)来分隔符号。" HelpUrl="https://go.microsoft.com/fwlink/?linkid=2147079" Category="General" />
  <EnumProperty Name="PlatformTarget" DisplayName="平台目标" Description="指定输出文件要面向的处理器。为任何 32 位 Intel 兼容处理器选择 &quot;x86&quot;，为任何 64 位 Intel 兼容处理器选择 &quot;x64&quot;，或者选择“任何 CPU”来指定可接受任何处理器。项目的默认设置是“任何 CPU”，因为它允许应用程序在范围最广泛的硬件上运行。" HelpUrl="https://go.microsoft.com/fwlink/?linkid=2147129" Category="General">
    <EnumValue Name="AnyCPU" DisplayName="任何 CPU" />
    <EnumValue Name="x64" DisplayName="x64" />
    <EnumValue Name="x86" DisplayName="x86" />
  </EnumProperty>
  <EnumProperty Name="Nullable" DisplayName="可为 Null" Description="指定项目范围的 C# 可为空上下文。仅适用于使用 C# 8.0 或更高版本的项目。" HelpUrl="https://go.microsoft.com/fwlink/?linkid=2146796" Category="General">
    <EnumProperty.DataSource>
      <DataSource HasConfigurationCondition="False" />
    </EnumProperty.DataSource>
    <EnumValue Name="disable" DisplayName="禁用" />
    <EnumValue Name="enable" DisplayName="启用" />
    <EnumValue Name="warnings" DisplayName="警告" />
    <EnumValue Name="annotations" DisplayName="注释" />
  </EnumProperty>
  <BoolProperty Name="AllowUnsafeBlocks" DisplayName="允许使用不安全代码" Description="允许使用“不安全”这一关键字编译的代码。" HelpUrl="https://go.microsoft.com/fwlink/?linkid=2146797" Category="General">
    <BoolProperty.Metadata>
      <NameValuePair Name="SearchTerms" Value="指针" />
    </BoolProperty.Metadata>
  </BoolProperty>
  <BoolProperty Name="Optimize" DisplayName="优化代码" Description="启用或禁用由编译器执行的优化，以使输出文件更小、更快、更高效。" HelpUrl="https://go.microsoft.com/fwlink/?linkid=2147080" Category="General">
    <BoolProperty.Metadata>
      <NameValuePair Name="SearchTerms" Value="优化;最优化" />
    </BoolProperty.Metadata>
  </BoolProperty>
  <StringProperty Name="LangVersion" DisplayName="语言版本" Description="为何无法选择 C# 语言版本?">
    <StringProperty.DataSource>
      <DataSource PersistedName="LangVersion" Persistence="ProjectFileWithInterception" HasConfigurationCondition="False" />
    </StringProperty.DataSource>
    <StringProperty.ValueEditors>
      <ValueEditor EditorType="LinkAction">
        <ValueEditor.Metadata>
          <NameValuePair Name="Action" Value="URL" />
          <NameValuePair Name="URL" Value="https://aka.ms/csharp-versions" />
        </ValueEditor.Metadata>
      </ValueEditor>
    </StringProperty.ValueEditors>
  </StringProperty>
  <!-- TODO create fwlink for this HelpUrl -->
  <BoolProperty Name="CheckForOverflowUnderflow" DisplayName="检查算术溢出" Description="指定如果整数算法导致出现数据类型范围之外的值以及未在已选或未选关键字的范围内，那么该算法是否会导致运行时异常。" HelpUrl="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/checked-compiler-option" Category="General">
    <BoolProperty.Metadata>
      <NameValuePair Name="SearchTerms" Value="选中;取消选中" />
    </BoolProperty.Metadata>
  </BoolProperty>
  <!-- TODO create fwlink for this HelpUrl -->
  <BoolProperty Name="Deterministic" DisplayName="是确定的" Description="指示编译器是否应为相同的输入生成相同的程序集。" HelpUrl="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/deterministic-compiler-option" Category="General" />
  <!-- TODO create fwlink for this HelpUrl -->
  <EnumProperty Name="ErrorReport" DisplayName="内部编译器错误报告" Description="控制何时向 Microsoft 发送内部编译器错误(ICE)。" HelpUrl="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errorreport-compiler-option" Category="General">
    <EnumProperty.DataSource>
      <DataSource HasConfigurationCondition="False" />
    </EnumProperty.DataSource>
    <EnumValue Name="none" DisplayName="从不发送" />
    <EnumValue Name="prompt" DisplayName="发送前提示" />
    <EnumValue Name="queue" DisplayName="队列" />
    <EnumValue Name="send" DisplayName="发送" />
  </EnumProperty>
  <!-- TODO create fwlink for this HelpUrl -->
  <EnumProperty Name="FileAlignment" DisplayName="文件对齐" Description="指定在何处对齐输出文件的各个部分(以字节为单位)。" HelpUrl="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/filealign-compiler-option" Category="General">
    <EnumValue Name="512" DisplayName="512" />
    <EnumValue Name="1024" DisplayName="1024" />
    <EnumValue Name="2048" DisplayName="2048" />
    <EnumValue Name="4096" DisplayName="4096" />
    <EnumValue Name="8192" DisplayName="8192" />
  </EnumProperty>
  <EnumProperty Name="WarningLevel" DisplayName="警告级别" Description="指定显示编译器警告的等级。" HelpUrl="https://go.microsoft.com/fwlink/?linkid=2146798" Category="ErrorsAndWarnings">
    <EnumValue Name="0" DisplayName="0" />
    <EnumValue Name="1" DisplayName="1" />
    <EnumValue Name="2" DisplayName="2" />
    <EnumValue Name="3" DisplayName="3" />
    <EnumValue Name="4" DisplayName="4" />
    <EnumValue Name="5" DisplayName="5" />
  </EnumProperty>
  <StringProperty Name="NoWarn" DisplayName="取消显示警告" Description="阻止编译器生成一个或多个警告的能力。使用逗号(&quot;,&quot;)或分号(&quot;;&quot;)来分隔多个警告编号。" HelpUrl="https://go.microsoft.com/fwlink/?linkid=2147300" Category="ErrorsAndWarnings" />
  <EnumProperty Name="TreatWarningsAsErrors" HelpUrl="https://go.microsoft.com/fwlink/?linkid=2147301" DisplayName="将警告视为错误" Description="用于指定将哪些警告视为错误。" Category="ErrorsAndWarnings">
    <EnumValue Name="false" DisplayName="无" />
    <EnumValue Name="true" DisplayName="全部" />
  </EnumProperty>
  <StringProperty Name="WarningsAsErrors" DisplayName="将特定警告视为错误" HelpUrl="https://go.microsoft.com/fwlink/?linkid=2147301" Description="将指定的警告视为错误。使用逗号(&quot;,&quot;)或分号(&quot;;&quot;)来分隔多个警告编号。" Category="ErrorsAndWarnings" />
  <StringProperty Name="BaseOutputPath" DisplayName="输出的基路径" Description="指定生成期间项目输出的基位置。为了区分项目配置，子文件夹将追加到此路径。" Category="Output" Subtype="directory">
    <StringProperty.DataSource>
      <DataSource HasConfigurationCondition="False" />
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty Name="BaseIntermediateOutputPath" DisplayName="中间输出的基路径" Description="指定生成期间项目的中间输出的基位置。为了区分项目配置，子文件夹将追加到此路径。" Category="Output" Subtype="directory">
    <StringProperty.DataSource>
      <DataSource HasConfigurationCondition="False" />
    </StringProperty.DataSource>
  </StringProperty>
  <!-- TODO create fwlink for this HelpUrl -->
  <BoolProperty Name="GenerateDocumentationFile" DisplayName="文档文件" Description="生成包含 API 文档的文件。" HelpUrl="https://docs.microsoft.com/en-us/dotnet/csharp/codedoc" Category="Output">
    <BoolProperty.DataSource>
      <DataSource HasConfigurationCondition="False" />
    </BoolProperty.DataSource>
  </BoolProperty>
  <!-- TODO consider removing this property from the UI altogether -->
  <StringProperty Name="DocumentationFile" DisplayName="XML 文档文件路径" Description="API 文档文件的可选路径。若要使用默认位置，请保留为空。" HelpUrl="https://go.microsoft.com/fwlink/?linkid=2147081" Category="Output" Subtype="file">
    <StringProperty.DataSource>
      <DataSource HasConfigurationCondition="False" />
    </StringProperty.DataSource>
    <StringProperty.Metadata>
      <NameValuePair Name="VisibilityCondition">
        <NameValuePair.Value>(evaluated "Build" "GenerateDocumentationFile")</NameValuePair.Value>
      </NameValuePair>
    </StringProperty.Metadata>
  </StringProperty>
</Rule>