【问题标题】:Build Sandcastle Documentation When Building Visual Studio Project构建 Visual Studio 项目时构建 Sandcastle 文档
【发布时间】:2011-10-24 22:33:40
【问题描述】:

我正在使用 Sandcastle 帮助文件生成器将我的 C# XML-DOC 文件输出为网站格式。如何从命令行完成相同的操作,以便在构建实际项目时将其添加为 Visual Studio 中的构建事件?

最终目标是在我构建 Visual Studio 项目时构建网站帮助文件内容。

【问题讨论】:

    标签: c# visual-studio sandcastle xml-documentation


    【解决方案1】:

    正如 Scott Wylie 所指出的,您需要在 Visual Studio 的项目属性中的构建后事件命令行中指定这一点。但是,我建议直接使用Sandcastle Help File Builder (SHFB) 而不是 Sandcastle。它使命令行调用简短而简单,如下所示,但请注意,首先您必须使用 SHFB GUI 配置 SHFB 项目,这会创建一个带有“.shfbproj”后缀的 msbuild 兼容构建文件:

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /p:Configuration=发布 myProject.shfbproj

    但是,请注意,我采用与您正在做的相反的方法:我没有使用 Visual Studio 以交互方式启动构建和辅助操作,而是使用 ant (nant) 启动所有内容的构建,其中包括我的 Visual Studio解决方案和随后的 SHFB 行动。所以这实际上是我使用 Sandcastle 构建文档的命令行调用:

    <exec executable="${msbuild}" dir="${csharpdoc}" output="${csharpdoc.log}">
        <arg value="/p:Configuration=Release"/>
        <arg value="myProject.shfbproj"/>
    </exec>
    

    我的偏好是整个构建应该可以从命令行启动,因此不需要交互(例如启动 Visual Studio 等)。这提供了灵活性,既可以作为计划的重复任务运行,也可以从 shell 按需运行。

    【讨论】:

    • 因此,正如对另一个答案的评论所述,作为普通 Visual Studio 构建属性的构建后事件,我添加了使用 MSBuild 构建 SHFBPROJ 文件的命令(类似于您发布的内容在第一个代码 sn-p 上)。但是,在运行构建时,它在任务管理器中启动了 1000 多个 MSBuild.exe 实例并被锁定。任何想法为什么?
    • 顺便说一句,我使用Help Builder而不是MSBuild编译时的构建,大约需要2分钟。将它添加到后期构建中以 100% 的 CPU 利用率运行了一个多小时,直到我最终杀死它。
    • @JohnChapman:您所指的“Help Builder”是什么?它是否包含在 SHFB 包中?
    【解决方案2】:

    您可以在项目属性的“构建事件”部分中从构建后事件命令行调用 SandCastle。如果您不使用任何自动构建工具,这应该可以很好地工作。

    【讨论】:

    • 从技术上讲,如果您在属性窗口中编辑构建事件,则您使用的是 MSBuild 自动构建工具。只是想澄清一下。
    • 我将如何具体做到这一点?我找到了一种针对 Sandcastle 项目文件调用 MSBuild 的方法,但是它启动了 1000 多个单独的 MSBuild 进程并锁定了计算机(从 GUI 构建时不会这样做)。
    【解决方案3】:

    如果您使用 MSBuild 作为构建工具,这是我不久前使用的 tutorial

    codeplex 上还有一个脚本,您可以研究使用它可能会帮助您。

    希望这会有所帮助!

    【讨论】:

    • 这看起来像是用于 TFS 构建。我将如何在正常的项目构建中执行此操作?
    【解决方案4】:

    我发现将 *.shfbproj 项目添加到解决方案中最简单。它在 VS 2010 中构建良好(虽然有点慢)。

    【讨论】:

    • 我无法在VS2013中添加shfbproj文件。 (我没有安装 SHFB 扩展,因为这可能会污染解决方案构建目标。)
    猜你喜欢
    • 2014-09-05
    • 2021-08-08
    • 2018-06-02
    • 2021-03-08
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多