网站项目:想要在构建时生成 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 文档。
出于遗留原因,我正在维护一个网站项目,我想为其提供来自 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 文档。