在Noda Time,我们使用Sandcastle和SHFB生成我们的文档.然后,我们将文档提交回源存储库 - 主要是因为这样可以轻松查看最新(和历史)文档.
我是该项目的主要开发人员,但我使用了两台计算机 - 不幸的是,他们正在构建不同的文档,即使它们都更新到同一个源.
这两台电脑在我能想到的每一个重要方面都是一样的:
为确保清洁构建而采取的步骤:
C:\Users\Jon\AppData\Local\EWSoftware\Sandcastle Help File Builder\Cache)差异仍然存在.它们似乎仅限于从MSDN本身继承的文档Object.Finalize.
版本1(在机器"Chubby"上生成):
<div class="summary">Allows an object to try to free resources and perform
other cleanup operations before it is reclaimed by garbage collection.</div>
Run Code Online (Sandbox Code Playgroud)
版本2(在机器"桑迪"上生成):
<div class="summary">Allows an <a
href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">
Object</a> to attempt to free resources and perform other cleanup operations
before the <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b"
target="_blank">Object</a> is reclaimed …Run Code Online (Sandbox Code Playgroud) Noda Time有一个问题,它所提供的XML文档文件也包含了所有内部和私有成员 - 这是一种耻辱.
幸运的是,Sandcastle帮助文件生成器有一个自定义构建组件 - IntelliSenseComponent在理论上它做了正确的事情.不幸的是,我无法弄清楚如何正确配置它.
文档给出了这个例子:
<output includeNamespaces="false" namespacesFile="Namespaces"
folder="{@OutputFolder}" />
Run Code Online (Sandbox Code Playgroud)
和州:
上面给出的示例来自Sandcastle帮助文件构建器的配置文件.与其一起使用时,替换标记{@SHFBFolder}和{@OutputFolder}用于在文件路径中插入帮助文件构建器的文件夹和项目的输出文件夹.这些在构建时被替换为适当的值.如果在您自己的构建脚本中使用该组件,请分别将该标记替换为组件程序集和输出文件夹的相对路径或绝对路径.
好吧,我正在使用SHFB,所以我希望它可以工作.但是,除了绝对的工作之路,我无法获得任何其他东西.我试过了:
folder="."
folder="{@OutputFolder}"
folder="{@OutputFolder}XYZZY"
folder="{@OutputFolder}\XYZZY"
folder="{@OutputFolder}/XYZZY"
folder="{@OutputFolder}/XYZZY/"
Run Code Online (Sandbox Code Playgroud)
(我只是使用XYZZY作为易于搜索的东西.)
看一下源代码,我希望我可以使用环境变量,但这不起作用:
folder="%CD%\XYZZY"
Run Code Online (Sandbox Code Playgroud)
虽然这样做......
folder="%USERPROFILE%\XYZZY"
Run Code Online (Sandbox Code Playgroud)
这有效:
folder="c:\users\jon\test\xyzzy"
Run Code Online (Sandbox Code Playgroud)
...但我真的不想要一个绝对的路径名.
文档表明所有这一切都应该很简单......我错过了什么?
涉及的版本:
当我myproject.shfbproj使用Windows CMD 运行Sandcastle帮助文件生成器项目文件(例如)时,我遇到一个恼人的问题:$(SolutionDir)具有相同的值$(ProjectDir),这意味着项目文档源将无法正确构建,因为我已经添加了自定义目标用途$(SolutionDir).
如果我从Visual Studio构建整个Sandcastle帮助文件生成器,它就会成功构建.
我正在使用以下命令(从存储项目的目录执行):
"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /p:Configuration=Development myproject.shfbproj
Run Code Online (Sandbox Code Playgroud)
这有什么解决方法吗?
我正在使用Sandcastle帮助文件生成器构建VS 2010 C#项目的文档.我已将.xml编译器生成的文档和项目的Visual Studio解决方案.sln文件添加到文档源.我还将项目的可执行文件添加.exe到了References.但是,它没有建设.我得到警告和错误:
SHFB:警告BE0006:无法找到"C:\ Users\user\Music\Documents\Visual Studio 2010\Projects\SFML_Platformer\SFML_Platformer.sln"的任何文档资源(配置:调试平台:AnyCPU)
SHFB:错误BE0042:您必须以程序集或Visual Studio解决方案/项目文件的形式指定至少一个文档源
有什么问题?
我正在尝试为HTML帮助1和MS帮助查看器构建可移植类库(.Net40,Silverlight 4,.Net for Windows Store,Windows Phone 7.5)的文档.我只有一个"文档来源".该项目设置为使用vs2010文档样式(vs2005样式也存在问题).每当我尝试构建文档项目时,无论是通过Sandcastle帮助文件生成器GUI还是Visual Studio 2010,我总会得到相同的错误:
SHFB: Error BE0019: Unable to transform template 'VS2010.config': Could not find a part of the path 'C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\.NETPortable'.
Could not find a part of the path 'C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\.NETPortable'.
Run Code Online (Sandbox Code Playgroud)
经过更多调查后,它看起来应该是目录C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\Templates\VS2010.config.如何将SHFB重定向到该目录而不是它正在尝试的目录?
我该怎么做才能建立文档项目?
通过进一步的调查,我想我已经推断出这个问题是文档源是一个可移植的类库.这是SHFB中的一个错误,还是我可以自行解决的问题?
.net sandcastle visual-studio-2010 shfb portable-class-library
我已经google了很多,试图找到一个解决方案,但似乎我错过了一些东西.
大多数文章告诉我,我应该修改构建文件(TfsBuild.proj).但我无法在任何地方找到该文件.谷歌搜索更多告诉我它已被TFS2010中的新构建模型取代?
SHFB 的官方文件只是说:
修改您的构建文件.此示例使用每日构建来生成文档:
它没有提到什么文件和方式.
有人可以善待并阐明我如何配置我们的TFS Build Server以使用Sandcastle Helpfile Builder生成文档?
我需要
有任何想法吗?我们在网站上有超过1000页的HTML文件(SHFB的输出).
我想过使用一个html2wiki转换器..我可以考虑寻找一个脚本来将这1000个页面转换成维基格式......这可以照顾(1).
但是我仍然会在管道的最后一部分留下块 - 如何将转换后的页面直接输入Wiki?
我的项目使用Sandcastle和Sandcastle帮助文件生成器生成文档.
我们使用的是自定义版本的script_manifold.js,它可以跨页面保留用户的语言首选项(默认版本会重置每个页面的语言首选项).
目前,该脚本位于Sandcastle\presentation\VS2005\scripts文件夹中.
有没有办法用自定义版本覆盖此脚本,而不必混淆Sandcastle安装?也就是说,我可以将一个文件与我的源代码一起检入源代码控制,并以某种方式使用SHFB而不是默认的Sandcastle文件?
我正在使用Sandcastle帮助文件生成器为我的库构建帮助文件.该库有三个版本(.NET,Silverlight和Windows Phone 7),它们是基于相同的代码库构建的.
我想在帮助文件页面底部的方法名称和版本信息旁边添加平台图标.类似于下面的截图.如何将此类信息添加到我的帮助文件中?

documentation sandcastle documentation-generation shfb xml-comments
我们使用 Sandcastle 来提供概念文档,并希望以非 CHM 或 HTML 形式(即打印形式)向客户提供文档。它可以是 Word 或 PDF,可以简单地附加到电子邮件中。用例通常涉及想要发送主题的人。
我们能做的最好的事情就是在查看 HTML 时从 CHM 查看器打印或从 Chrome 打印为 PDF。它们存在一些问题,因为它们会删除锚元素点击、将图像变成黑白等。
Codeplex 上的 SHFB 讨论中有一个帖子指出没有任何已知的替代方案 - http://shfb.codeplex.com/discussions/260489。我在这里重新发布问题,希望获得更多的意见和可见度。
当我使用Sandcastle Helpfile Builder创建chm时,如何在xmldoc块中将列表渲染为有序列表?
以下不起作用:
/// <list type="numbered">
/// <item>Built in support for foobar</item>
/// <item>Client gooblygook and associated javascript support</item>
/// <item>Client side ability to read values from control</item>
/// <item>AJAX support via ASP.NET callbacks</item>
/// <item>Smaller HTML and Javascript footprint when compared to the crappy thirdparty control we paid too much for.</item>
/// </list>
Run Code Online (Sandbox Code Playgroud)
在我试图解决的特定情况下,列表位于<summary />元素内.
我正在尝试使用<codeEntityReference>MAML元素创建指向自定义扩展方法的链接,一旦我构建了文档,我就会得到整个<codeEntityReference>标记内容而不是整个方法的链接.
该方法的一个示例是:
namespace SampleProject
{
public static class ExtensionMethods
{
public static bool SomeExtension<T>(this T some) => true;
}
}
Run Code Online (Sandbox Code Playgroud)
而<codeEntityReference>将如下<codeEntityReference>M:SampleProject.ExtensionMethods.SomeExtension{T}(TObject)</codeEntityReference>
上面的链接将产生类似M的输出:SampleProject.ExtensionMethods.SomeExtension {T}(T).
实际上,我在文档构建过程中遇到以下错误:
警告:BuildAssembler:警告:ResolveReferenceLinksComponent:[52e40f26-3dfe-47e0-adf1-09233e98f42e]未知的引用链接目标'M:SampleProject.ExtensionMethods.SomeExtension {T}(T)'
我错过了什么吗?那有什么不对?我试图提供方法参考:
M:SampleProject.ExtensionMethods.SomeExtension`1
Run Code Online (Sandbox Code Playgroud)
......但它没有解决问题.
我有一个相当大的解决方案,其中包含两个基于Sandcastle + Sandcastle帮助文件生成器(SHFB)的文档项目.这些项目都可以从命令行(msbuild project.shfb)正确构建,也可以使用SHFB Visual Studio 2010集成的beta版本.
当我在TeamCity中运行构建时,我在文档构建中遇到了一个神秘的构建失败.SHFB日志说明了这一点:
[Sandcastle Help File Builder, version 1.9.3.0]
Cached Resolve Reference Links 2 Component. Copyright © 2006-2011, Eric Woodruff, All Rights Reserved
http://SHFB.CodePlex.com
Info: CachedResolveReferenceLinksComponent: Loaded 61 cached MSDN URL entries
Info: SaveComponent: Instantiating component.
Info: BuildAssembler: Building topic N:MyProject
Info: BuildAssembler: Building topic T:MyProject.ActionNotImplementedException
Info: BuildAssembler: Building topic AllMembers.T:MyProject.ActionNotImplementedException
Info: BuildAssembler: Building topic Methods.T:MyProject.ActionNotImplementedException
Info: BuildAssembler: Building topic Properties.T:MyProject.ActionNotImplementedException
Info: BuildAssembler: Building topic Overload:MyProject.ActionNotImplementedException.#ctor
Info: BuildAssembler: Building topic M:MyProject.ActionNotImplementedException.#ctor
Info: BuildAssembler: …