c# - 在使用SandcaSTLe的构建过程中自动生成html文档

标签 c# visual-studio-2008 documentation sandcastle

我需要采取什么步骤才能通过Visual Studio中的构建步骤来自动构建HTML文档?我已经准备好了所有注释,正在生成comments.xml文件,并安装了SandcaSTLe。我只需要知道要添加到生成后步骤中的内容即可生成文档。

最佳答案

自从提出此问题以来,已经进行了一些更改。 SandcaSTLe 不再包含SandcastleBuilderConsole.exe。相反,它使用普通的旧MSBuild.exe

要将其与Visual Studio集成在一起,这是我所做的:

将此放置在您的构建后事件中:

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

"$(SystemRoot)\microsoft.net\framework64\v4.0.30319\msbuild.exe" /p:CleanIntermediates=True /p:Configuration=Release "$(SolutionDir)ProjectName\doc\DocumentationProjectName.shfbproj"

:Exit

仅当您在“发布”模式下构建时,这才使Visual Studio生成您的文档。这样,当您在开发过程中以“调试”模式进行构建时,您不会永远等待。

几个注意事项:
  • 我的系统是64位的,如果您的系统不是,请在framework64的路径中将framework替换为msbuild.exe
  • 我设置的方式是单独记录解决方案中的每个项目。如果您有一个“SandcaSTLe帮助文件构建器”项目文件,其中同时包含多个项目,那么您可能希望摆脱ProjectName\并将doc移到解决方案目录中。在这种情况下,您将只希望将后构建事件命令放在解决方案中最后构建的项目上。如果将其放在每个项目的“构建后”事件中,则将为每个已构建的项目重建文档。不用说,您会坐在那里一会儿。我个人更喜欢单独记录每个项目,但这就是我。

  • 安装SandcaSTLe和“SandcaSTLe帮助文件生成器”。

    如果您不知道如何正确安装SandcaSTLe和“SandcaSTLe帮助文件生成器”,请按照下列步骤操作:
  • http://sandcastle.codeplex.com/下载并安装SandcaSTLe(如果您使用的是64位系统,则需要添加环境变量。说明为here
  • http://shfb.codeplex.com/下载并安装“SandcaSTLe帮助文件生成器”(如果有,请忽略有关MSHelp2的警告。您将不需要它。)
  • 安装完这些文件后,请使用“SandcaSTLe帮助文件生成器”创建一个新的文档项目。当它询问您将文件保存在何处时,请将其保存在解决方案/项目中的文档文件夹中。
    http://www.chevtek.com/Temp/NewProject.jpg
  • 创建新项目后,您需要选择要创建的文档类型。编译的Windows帮助文件,网站或两者兼而有之。
    http://www.chevtek.com/Temp/DocumentationType.jpg
  • 如果将SHFB项目文件保存在要生成文档的目录中,则可以跳过此步骤。但是,如果要将生成的文档放置在其他位置,则需要调整输出路径。
    http://www.chevtek.com/Temp/OutputPath.jpg
    注意:关于输出路径(要让我沮丧一个小时),要记住的一件事是,当您将网站检查为所需的文档类型时,它将覆盖其输出路径中的内容。他们忽略了告诉您的是,SHFB故意限制了某些文件夹不被包括在输出路径中。 table 面就是这样的文件夹之一。您的输出路径不能在 table 面上,甚至不能在 table 面的子文件夹上。我的文档也不能使用它,但是它可以是我的文档的子文件夹。如果在构建文档时遇到错误,请尝试更改输出路径,看看是否可以解决该问题。有关详细信息,请参见http://shfb.codeplex.com/discussions/226668?ProjectName=shfb
  • 最后,您需要添加对要记录的项目的引用。如果像我一样在做单个项目,那么对于您创建的每个SHFB项目文件,您都将引用相应的.CSPROJ文件。如果您的整个解决方案都有一个SHFB项目,那么您将找到解决方案的.SLN文件。 (如果您引用已编译的DLL,则 SandcaSTLe 也可以使用,但是由于您将其与Visual Studio集成在一起,所以我发现改为引用项目/解决方案文件更有意义。这也可能意味着您实际上不关心哪个项目进行post-build事件,因为它引用的是代码而不是DLL,但最好还是将其放到所构建的最后一个项目中)
    http://www.chevtek.com/Temp/AddSource.jpg
  • 保存项目,然后您可以关闭“SandcaSTLe帮助文件生成器”。现在一切就绪。只要确保将文档项目文件放在批处理命令在Post-build事件中指向的适当文件夹中即可。

  • 希望我的简短教程对您有所帮助!对于我而言,很难找到任何像样的教程来向我展示如何使用 SandcaSTLe ,更不用说如何将其与Visual Studio集成了。希望以后的Google搜索会出现这个问题。

    关于c# - 在使用SandcaSTLe的构建过程中自动生成html文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/211693/

    相关文章:

    wpf - Visual Studio 2008 Xaml 编辑器不工作/消失

    reactjs - 从几个 github 存储库到静态站点的文档

    api - 如何使用 yaml 在 swagger 中描述响应对象?

    c# - 如何在文档注释中引用数组类型

    c# - Dapper 参数不起作用

    c# - 在 AsyncObservableCollection 上实现 RemoveAll

    c# - 在 C# 中将 &#____ 转换为\u____ 吗?

    c++ - Visual Studio C++ 多项目解决方案

    c++ - 从 ATL 项目调用自定义 COM 接口(interface)

    c# - Ajax.net - 改善页面加载时间