2008-10-17 78 views
19

要通过Visual Studio中的构建步骤自动构建HTML文档需要采取哪些步骤?我准备好了所有的评论和正在生成的comments.xml文件,并安装了Sandcastle。我只需要知道要在生成后步骤中添加什么才能生成文档。在使用Sandcastle构建期间自动生成html文档

+0

不知道你的目标建立时间偏离航线,但只是想提一提,沙塔真的不是你想对你的日常积累调试周期,包括东西。 – 2008-10-21 06:59:03

+0

没有,因为我在这个答案中提到(http://stackoverflow.com/questions/211693/generate-html-documentation-automatically-during-a-build-with-sandcastle#211710)我有一个文件一个单独的版本。 – 2008-10-21 08:08:33

回答

31

一些变化,因为这个问题被问。 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位的,如果你没有再与framework在路径替换framework64msbuild.exe

  • 我设置它的方式是分别在我的解决方案中记录每个项目。如果您有一个包含多个项目的“Sandcastle Help File Builder”项目文件,那么您可能希望摆脱ProjectName\并将doc移动到解决方案目录中。在这种情况下,您只需要将Post-build事件命令放在您的解决方案中最后构建的项目上。如果您将其置于每个项目的Post-build事件中,那么您将为每个构建的项目重建文档。不用说,你会坐在那里一段时间。我个人更喜欢单独记录每个项目,但那只是我自己。

安装Sandcastle和“Sandcastle Help File Builder”。

如果你不知道如何让沙堡和“沙堡帮助文件生成器”设置正确,然后按照下列步骤操作:

  1. 下载和安装http://sandcastle.codeplex.com/沙堡(如果你有一个64位系统,你将需要添加的环境变量。该指令是here

  2. 下载,如果你得到任何来自http://shfb.codeplex.com/安装“沙堡帮助文件生成器”(忽略警告有关MSHelp2,你会不会需要它。 )

  3. 安装完成后,使用“Sandcastle Help File Builder”创建一个新的文档项目。当它询问您保存文件的位置时,请将其保存在解决方案/项目中的文档文件夹中。 http://www.chevtek.com/Temp/NewProject.jpg

  4. 创建新项目后,您需要选择要创建的文档类型。编译的Windows帮助文件,网站或两者。 http://www.chevtek.com/Temp/DocumentationType.jpg

  5. 如果您将SHFB项目文件保存在要生成文档的目录中,则可以跳过此步骤。但是,如果您想将生成的文档放在其他地方,则需要调整输出路径。 http://www.chevtek.com/Temp/OutputPath.jpg 注意:关于输出路径(让我沮丧了一个小时)的一件事是,当您将网站检查为所需文档类型时,它将覆盖其输出路径中的内容。他们忽视的是,SHFB故意限制某些文件夹不属于输出路径的一部分。桌面就是这样一个文件夹。您的输出路径不能位于桌面上,甚至不能位于桌面的子文件夹中。它不能通过我的文档,但它可以是我的文档的子文件夹。如果在构建文档时出现错误,请尝试更改输出路径并查看是否修复了它。有关详细信息,请参阅http://shfb.codeplex.com/discussions/226668?ProjectName=shfb

  6. 最后,您将需要添加对您要记录的项目的引用。如果您像我一样在执行单个项目,那么对于您创建的每个SHFB项目文件,都将引用相应的.CSPROJ文件。如果您的整个解决方案都有一个SHFB项目,那么您可以找到解决方案的.SLN文件。 (如果你引用编译后的DLL,sandcastle也可以工作,但是由于你将它与Visual Studio集成在一起,我发现引用项目/解决方案文件更有意义,这也许意味着你选择哪个项目并不重要做生成后事件上,因为它的引用代码,而不是DLL的,但最好是安全的,并把它放在它内建的最后一个项目) http://www.chevtek.com/Temp/AddSource.jpg

  7. 保存项目,你可以关闭“沙堡帮助文件生成器“。现在全部设置完成。只要确保将文档项目文件放在批处理命令指向Post-build事件的相应文件夹中即可。

我希望我的短教程能帮助你!我很难找到任何体面的教程向我展示如何使用沙堡,更不用说如何将它与视觉工作室集成。希望未来的谷歌搜索会出现这个问题。

6

我建议您从Codeplex安装Sandcastle Help File Builder。

您可以从命令行运行该命令,例如,来自构建后事件。最简单的命令行是:

<install-path>\SandcastleBuilderConsole.exe ProjectName.shfb 

沙堡是非常缓慢的,所以我只运行它的发布版本。要做到这一点,创建一个命令类似于下面的东西,它通过配置名称到一个批处理文件生成后事件:

CALL "$(ProjectDir)PostBuild.cmd" $(ConfigurationName) 

然后里面的批处理文件可以测试,如果第一个参数是“发行“如果是这样的话,运行SandcastleBuilderConsole.exe。

+0

我在后构建脚本中已经这样做了,我只是检查配置名称以确保它是“文档”(我有3个配置,调试,发布和文档)。 – 2008-10-17 11:03:33

+0

更好。意味着您可以在不使用文档的情况下快速创建发布版本。 – Joe 2008-10-17 11:06:27

0

我必须承认,我发现目前的Sandcastle版本有点欠缺;对于大型项目来说,它非常缓慢,并且整合起来并不容易(因为它还很早)。

经常使用,其实我觉得它更容易只是在与DLL和XML文件的文件夹指向反射 - IIRC,它将加载XML文件(S)为您导航周围。

另外,我几乎总是有反射器打开无论如何...

[编辑]检查,是 - XML注释显示在反汇编面板

0

安装这些:

NDoc的:http://prdownloads.sourceforge.net/ndoc/NDoc-v1.3.1.msi?download

HTML Help Workshop:http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en

然后使用NDocConsole.exe命令行来生成在任一或MSDN CHM形式文档:

@c:\ PROGRA〜1个\ NDoc的\ NDocConsole.exe MyCode.dll,MyCode.xml -Documenter = MSDN-CHM

我自己做了一个外部工具用于这一点,并给了它一个快捷方式,但由于以前的海报说,你可以把它挂到一个postbuild事件,你去那里。

(PS我一直在使用上面设置了好几年了,我非常喜欢它)

1

一个简单的方法来做到这一点上面建议使用沙堡帮助文件生成器。 已经有命令行构建过程做了一些改变,现在这些项目可以用的MSBuild而不是SandcastleBuilderConsole.exe建成。因此,所有你需要做的是:已经做出

MSbuild.exe ProjectName.shfb

相关问题