如何使用 Sandcastle NuGet 包生成文档 (EWSoftware.SHFB)?

How to generate documentation using Sandcastle NuGet package (EWSoftware.SHFB)?

我正在尝试使用 Visual Studio (EWSoftware.SHFB) 中 Sandcastle 的 NuGet 包为我的 C# 代码生成网站文档。事实是我不知道如何使用它。我从 NuGet 包管理器安装它,然后我不知道如何处理它。

我可以毫无问题地编辑我的文档项目并使用随默认安装程序安装的 VS Sandcaslte 扩展生成相应的网站。

感谢您的帮助。

假设您已经有了项目的解决方案,请将 'Documentation' 类型的新项目添加到您的解决方案中。

右键单击文档源并通过选择要记录的 csproj 添加源。

然后构建。

MsBuild.exe MyDocumentationProject.shfbproj 生成了文档。就是说这个项目不能通过VS编辑,但是可以使用命令行生成。

之前,如 https://github.com/EWSoftware/SHFB/blob/master/NuGet/ReadMe.txt 所述:

  1. 必须在 MyDocumentationProject.shfbproj 中设置 ComponentPath 属性 以提供有关您正在使用的框架的反射信息。

    <PropertyGroup>
      <ComponentPath>$(MSBuildThisFileDirectory)..\packages\EWSoftware.SHFB.NETFramework.4.6</ComponentPath>
    </PropertyGroup>
    
  2. 必须在 MyDocumentationProject.shfbproj 中有条件地设置 SHFB 环境变量。

    <PropertyGroup>
      <SHFBROOT Condition=" '$(SHFBROOT)' == '' ">$(MSBuildThisFileDirectory)..\packages\EWSoftware.SHFB.2015.10.10.0\Tools\</SHFBROOT>
    </PropertyGroup>
    

我在安装 Sandcastle 后使用 Visual Studio 插件创建了文档项目。

我在成功完成后在另一个项目上添加了以下 post-build 事件:

IF "$(ConfigurationName)"=="Debug" Goto Exit

ECHO Building SHFB help file via MSBuild
"$(SystemRoot)\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"  /p:CleanIntermediates=True /p:Configuration=Release "$(SolutionDir)Documentation\Documentation.shfbproj"

:Exit

项目文档文件中的 SHFB 环境变量如下所示:

<!-- NOTE: Update the version number in the path (YYYY.M.D.R) to match the package version -->
<SHFBROOT Condition=" '$(SHFBROOT)' == '' ">$(MSBuildThisFileDirectory)..\packages\EWSoftware.SHFB.2016.9.17.0\tools\</SHFBROOT>

如果系统上未安装 Sandcastle,它将使用 NuGet 包中的可执行文件。确保版本与其他人匹配。

这些文档链接可能有助于解决我忘记的问题: