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

C# 如何使用Sandcastle NuGet包(EWSoftware.SHFB)生成文档?,c#,visual-studio,nuget,sandcastle,C#,Visual Studio,Nuget,Sandcastle,我正试图使用VisualStudio中Sandcastle的NuGet包(EWSoftware.SHFB)为我的C代码生成网站文档。事实是我不知道如何使用它。我从NuGet软件包管理器安装它,然后我不知道如何处理它 我可以编辑我的文档项目,并使用默认安装程序安装的VS Sandcaslte扩展生成相应的网站 感谢您的帮助。假设您已经有了一个项目的解决方案,请将“文档”类型的新项目添加到您的解决方案中 右键单击Documentation Sources并通过选择要记录的csproj添加源 然后

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

我可以编辑我的文档项目,并使用默认安装程序安装的VS Sandcaslte扩展生成相应的网站


感谢您的帮助。

假设您已经有了一个项目的解决方案,请将“文档”类型的新项目添加到您的解决方案中

右键单击Documentation Sources并通过选择要记录的csproj添加源


然后只需构建。

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

在此之前,如所述:

  • 必须在
    MyDocumentationProject.shfbproj
    中设置
    ComponentPath
    属性,以提供有关所使用框架的反射信息

    <PropertyGroup>
      <ComponentPath>$(MSBuildThisFileDirectory)..\packages\EWSoftware.SHFB.NETFramework.4.6</ComponentPath>
    </PropertyGroup>
    

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

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

    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>
    
    
    $(MSBuildThisFileDirectory)…\packages\EWSoftware.SHFB.2016.9.17.0\tools\
    
    如果系统上没有安装Sandcastle,它将使用NuGet包中的可执行文件。确保版本与其他版本匹配

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


    我希望未安装Sandcatale组件的用户能够生成文档。在这种情况下,什么软件会生成文档?如中所述,NuGet软件包应该提供这样的功能性。我可能错了,因为我从未这样做过,但从自述中我了解到,NuGet软件包提供了相同的功能(称为Sandcastle帮助文件生成器),但它是通过NuGet安装的,而不是运行Sandcastle.msi。我已从Windows卸载程序卸载了Sandcastle,我已从VS卸载了VS Sandcastle扩展,并从VS下载了NuGet软件包。行为不同……这可能也会有所帮助。添加这些属性后,项目是如何构建的?我有一个.NET库项目,其中包括了这些EWSoftware.SHFB nuget包,但在我构建此项目时没有生成任何帮助文件。只是有相同的问题,但问题是重复的,请不要忘记删除它。
    <!-- 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>