【问题标题】:Can DocumentationFile and GenerateDocumentationFile be used together in .Net project file?DocumentationFile 和 GenerateDocumentationFile 可以在 .Net 项目文件中一起使用吗?
【发布时间】:2022-01-01 04:14:39
【问题描述】:

我正在为 C# 项目编写一个小型分析器,用于检查 XML 文档生成是否存在并正确设置。指定 XML 文档有两个选项:

  • 较旧的DocumentationFile 选项
  • 较新的GenerateDocumentationFile 标志。如果该标志设置为 true,则 MSBuild 应在项目的输出目录中生成一个带有项目名称的 XML 文档文件。

可以在项目文件中明确指定这两个选项吗? 这些选项的值会被合并还是忽略其中一个选项?

【问题讨论】:

    标签: c# .net msbuild xml-documentation


    【解决方案1】:

    它们都不需要设置。如果DocumentationFile 不为空,则GenerateDocumentationFile 将在MSBuild 目标中设置为true

    如果您将GenerateDocumentationFile 设置为true,则将根据项目文件名设置DocumentationFile 的默认值。

    相关的 MSBuild 目标

      <!-- Handle XML documentation file settings -->
      <PropertyGroup Condition="'$(GenerateDocumentationFile)' == ''">
        <GenerateDocumentationFile Condition="'$(DocumentationFile)' == ''">false</GenerateDocumentationFile>
        <GenerateDocumentationFile Condition="'$(DocumentationFile)' != ''">true</GenerateDocumentationFile>
      </PropertyGroup>
    
      <PropertyGroup Condition="'$(GenerateDocumentationFile)' == 'true' and '$(DocumentationFile)' == ''">
        <DocumentationFile Condition="'$(MSBuildProjectExtension)' == '.vbproj'">$(AssemblyName).xml</DocumentationFile>
        <DocumentationFile Condition="'$(MSBuildProjectExtension)' != '.vbproj'">$(IntermediateOutputPath)$(AssemblyName).xml</DocumentationFile>
      </PropertyGroup>
    
      <PropertyGroup Condition="'$(GenerateDocumentationFile)' != 'true'">
        <DocumentationFile />
      </PropertyGroup>
    

    【讨论】:

    • 非常感谢!因此,如果我理解正确,它们都可以在项目文件中明确设置。如果 GenerateDocumentationFile 设置为 false,则忽略 DocumentationFile,如果 GenerateDocumentationFile 设置为 true,则 MSBuild 将使用项目文件中指定的 DocumentationFile。如果没有指定 DocumentationFile,则 MSBuild 将生成它,
    • 是的,你完全理解!
    • 当你有两个选项并且 GenerateDocumentationFile 设置为 false 的情况我仍然有点不清楚。 声明会覆盖现有的 DocumentationFile 选项吗?
    猜你喜欢
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多