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

时间:2015-09-18 16:12:52

标签: visual-studio-2012 web-site-project xml-documentation

由于遗留原因,我正在维护一个Web站点项目,我想从XML文档注释中提供最新文档。我知道我可以通过调整<compilers>中的web.config部分来实现这一点。我终于达到了这一点:

  <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,但是那里提供的链接已经重定向到Sandcastle网站。这很好,但它比我实际上要在这个项目上使用的方式更多。只需在构建时或运行时获取XML文档就是必要的。

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

1 个答案:

答案 0 :(得分:1)

我也有一个丑陋的解决方法......但是这里有!

1. 从此页面下载最新的Sandcastle Installer - 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文档。