网站项目:想要在构建时生成 XML 文档

Website project: want to generate XML documentation on build

出于遗留原因,我正在维护一个网站项目,我想为其提供来自 XML 文档评论的最新文档。我想我可以通过调整 web.config 中的 <compilers> 部分来做到这一点。我终于达到了这一点:

  <system.codedom>
    <compilers>
      <compiler
        language="c#;cs;csharp"
        extension=".cs"
        type="Microsoft.CSharp.CSharpCodeProvider"
        compilerOptions="/optimize /doc:C:\temp\my-output-here.xml"
        warningLevel="1" />
    </compilers>
  </system.codedom>

现在,当我使用(并因此调用即时编译)启动网站时,我确实在请求的位置获得了一个 XML 文件,但它很小:

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>App_global.asax.abqhzva4</name>
    </assembly>
    <members>
    </members>
</doc>

<compiler> 标签似乎没有达到我的要求。它必须为项目文件夹本身而不是 .cs 文件生成 XML,或者它被每个编译单元覆盖,我只看到微不足道的最后一个,或者......我不不知道。我不确定。这个配置标签没有很好的记录。

长话短说,我正在寻找一种方法来获取此网站项目中所有 .cs 文件的 XML 文档。不管它是在一个文件中,在单独的文件中,还是在 运行 时间被推入内存都没有关系。

我对此 aware of the prior question,但 link 已重定向到 Sandcastle 站点。这很好,但它比我实际要在这个项目上使用的要多得多。只需在构建时或 运行 时获取 XML 文档即可。

我的问题是:我需要做什么才能获得 <compiler> 配置条目来为网站项目生成 XML 文档?

我也有一个丑陋的解决方法...但是现在开始了!

1. 从此页面下载最新的 Sandcastle 安装程序 - https://github.com/EWSoftware/SHFB/releases

2. 解压缩并运行 安装程序

3.EWSoftware.CodeDom.dll 复制到您网站的 \bin 目录中。此文件的默认位置是 - C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\Extras\EWSoftware.CodeDom.dll

4.修改web.config如下:

<configuration>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        compilerOptions="/docpath:C:\Publish\Docs"
        type="EWSoftware.CodeDom.CSharpCodeProviderWithDocs, EWSoftware.CodeDom"
      >
        <!-- NOTE: Change version value as needed (v3.5, v4.0, etc.) -->
        <providerOption name="CompilerVersion" value="v4.0"/>
      </compiler>
    </compilers>
  </system.codedom>
</configuration>

来源:http://ewsoftware.github.io/EWSoftwareCodeDom/html/40ba6bda-95d6-4a64-834f-f7cedcb589d1.htm

5. 重建您的解决方案,瞧!使用 /docpath 选项指定的文件夹将包含您的 XML 文档。