我需要采取哪些步骤才能让Visual Studio构建步骤自动生成HTML文档?我已经按照要求添加了所有的注释并生成了comments.xml文件,并安装了Sandcastle,现在我只需要知道在后期构建步骤中需要添加什么内容以生成文档。
我需要采取哪些步骤才能让Visual Studio构建步骤自动生成HTML文档?我已经按照要求添加了所有的注释并生成了comments.xml文件,并安装了Sandcastle,现在我只需要知道在后期构建步骤中需要添加什么内容以生成文档。
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在“Release”模式下构建文档。这样,在开发期间在“Debug”模式下构建时,您不必等待太久。
几个注意事项:
我的系统是64位的,如果您的不是,则在到msbuild.exe
的路径中用framework
替换framework64
。
我设置的方式是单独为解决方案中的每个项目记录文档。如果您有一个“Sandcastle Help File Builder”项目文件,其中包括多个项目,则可能需要摆脱ProjectName\
,并将doc
移动到解决方案目录中。在这种情况下,您将只想在您的解决方案中最后一个构建的项目上放置Post-build事件命令。如果您将其放在每个项目的Post-build事件中,则将为构建的每个项目重新构建文档。不用说,您将坐在那里一段时间。个人而言,我更喜欢单独记录每个项目的文档,但这只是我个人的偏好。
安装Sandcastle和“Sandcastle Help File Builder”。
如果您不知道如何正确设置Sandcastle和“Sandcastle Help File Builder”,请按照以下步骤操作:
从http://sandcastle.codeplex.com/下载并安装Sandcastle(如果您有64位系统,则需要添加环境变量。请参阅here中的说明)。
从http://shfb.codeplex.com/下载并安装“Sandcastle Help File Builder”(如果出现任何有关MSHelp2的警告,请忽略。您将不需要它)。
安装完成后,使用“Sandcastle Help File Builder”创建一个新的文档项目。当它询问您要在哪里保存文件时,请将其保存在解决方案/项目中的文档文件夹中。 http://www.chevtek.com/Temp/NewProject.jpg
创建新项目后,您需要选择要创建的文档类型。编译的Windows帮助文件、网站或两者兼而有之。 http://www.chevtek.com/Temp/DocumentationType.jpg
如果您已将SHFB项目文件保存在要生成文档的目录中,则可以跳过此步骤。但是,如果您想将生成的文档放在其他位置,则需要调整输出路径。 http://www.chevtek.com/Temp/OutputPath.jpg 注意:关于输出路径的一件事情(让我沮丧了一个小时),就是当您将网站选为所需的文档类型时,它将覆盖输出路径中的内容。他们忽略告诉您的是SHFB故意限制了某些文件夹不包括在输出路径中。桌面就是这样一个文件夹。您的输出路径不能在桌面上,甚至不能是桌面的子文件夹。它也不能是“我的文档”,但它可以是“我的文档”的子文件夹。如果构建文档时出现错误,请尝试更改输出路径并查看是否可以解决问题。有关详细信息,请参见http://shfb.codeplex.com/discussions/226668?ProjectName=shfb。
最后,您需要添加对要文档化的项目的引用。如果您像我一样单独进行项目,则对于每个SHFB项目文件,您将引用相应的.CSPROJ文件。如果您为整个解决方案创建了一个SHFB项目,则您将找到解决方案的.SLN文件。(Sandcastle也适用于引用已编译的DLL,但由于您正在将其与Visual Studio集成,因此我发现引用项目/解决方案文件更有意义。这也可能意味着实际上无论您在哪个项目上执行后期构建事件都无所谓,因为它正在引用代码而不是DLL,但最好安全起见并将其放在最后一个构建的项目上) http://www.chevtek.com/Temp/AddSource.jpg
保存项目,您可以关闭“Sandcastle Help File Builder”。现在所有都设置好了。只需确保将文档项目文件放在批处理命令指向的适当文件夹中即可进行后期构建事件。
我希望我的简短教程能够帮助你!对我来说,很难找到任何像样的教程,向我展示如何使用沙堡,更不用说如何将其与Visual Studio集成。希望未来的谷歌搜索会出现这个问题。
<install-path>\SandcastleBuilderConsole.exe ProjectName.shfb
Sandcastle非常缓慢,因此我只在发布版本构建时运行它。为此,请创建一个后期生成事件,并添加以下命令(将配置名称传递给批处理文件):
CALL "$(ProjectDir)PostBuild.cmd" $(ConfigurationName)
然后,在批处理文件中,您可以测试第一个参数是否为“Release”,如果是,则运行SandcastleBuilderConsole.exe。
我必须承认,我觉得当前版本的Sandcastle有点不足;对于大型项目来说,它相当慢,并且不容易集成(因为它仍处于早期阶段)。
对于常规使用,我实际上发现只需将反编译器指向包含dll和xml文件的文件夹更容易 - 如果我没记错的话,当您在其中浏览时,它会加载xml文件。
此外,我几乎总是打开反编译器...
[编辑] 检查过了,是的 - xml注释显示在反汇编面板中
安装以下内容:
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:我已经使用上述设置几年了,并且非常满意)