Microsoft Help Viewer SDK

适用范围:yesVisual Studio noVisual Studio for Mac noVisual Studio Code

本文包含 Visual Studio 帮助查看器集成商的以下任务:

  • 创建 (F1 主题支持)

  • 创建帮助查看器内容品牌包

  • 部署一组文章

  • 向 Visual Studio shell 添加帮助 (集成或隔离)

  • 其他资源

(F1 支持) 创建主题

本部分概述了所呈现主题的组件、主题要求、有关如何创建主题的简短说明 (包括 F1 支持要求) ,最后是示例主题及其呈现的结果。

帮助查看器主题概述

调用主题进行呈现时,帮助查看器获取在安装或上次更新时与主题关联的品牌包元素,以及主题 XHTML,并将这两者组合在一起,以生成呈现的内容视图 (品牌数据 + 主题数据) 。 品牌包包含徽标、对内容行为的支持、 (版权等) 的品牌文本。 有关品牌包元素的详细信息,请参阅下面的“创建品牌包”。 如果没有与主题关联的品牌包,帮助查看器将使用帮助查看器应用程序根 (Branding_en-US.mshc) 中的回退品牌包。

帮助查看器主题要求

若要在帮助查看器中正确呈现,原始主题内容必须为 W3C Basic 1.1 XHTML。

主题通常包含两个部分:

  • 元数据 (请参阅内容元数据参考) :有关主题的数据,例如主题唯一 ID、关键字 (keyword) 值、主题 TOC ID、父节点 ID 等。

  • 正文内容:符合 W3C Basic 1.1 XHTML,其中包括支持的内容行为 (可折叠区域、代码片段等。完整列表如下所示) 。

Visual Studio 品牌包支持的控件:

  • 链接

  • CodeSnippet

  • CollapsibleArea

  • 继承的成员

  • LanguageSpecificText

支持的语言字符串 (不区分大小写) :

  • javascript

  • csharp 或 c#

  • cplusplus 或 visualc++ 或 c++

  • jscript

  • visualbasic 或 vb

  • f# 或 fsharp 或 fs

  • other - 表示语言名称的字符串

创建帮助查看器主题

创建名为 ContosoTopic4.htm 的新 XHTML 文档,并在以下) 包含标题标记 (。

<html>
<head>
<title>Contoso Topic 4</title>
</head>

<body>

</body>
</html>

接下来,添加数据以定义如何呈现主题 (自有品牌或未) 、如何引用本主题的 F1、本主题存在于 TOC 中的位置、其 ID (供其他主题引用) 等。有关支持元数据的完整列表,请参阅下面的“内容元数据”表。

  • 在这种情况下,我们将使用我们自己的品牌包,这是 Visual Studio 帮助查看器品牌包的变体。

  • (“Microsoft.Help.F1” content=“ ContosoTopic4”) 添加 F1 元名称和值,该名称与 IDE 属性包中提供的 F1 值相匹配。 (有关详细信息,请参阅 F1 支持部分。) 此值与 IDE 中的 F1 调用匹配,以便在 IDE 中选择 F1 时显示本主题。

  • 添加主题 ID。 这是其他主题用来链接到本主题的字符串。 它是本主题的帮助查看器 ID。

  • 对于 TOC,请添加本主题的父节点,以定义本主题 TOC 节点的显示位置。

  • 对于 TOC,请添加本主题的节点顺序。 当父节点具有 n 子节点数时,按子节点的顺序定义本主题的位置。 例如,本主题是 4 个子主题中的第 4 个。

示例元数据部分:

<html>
<head>
<title>Contoso Topic 4</title>

<meta name="SelfBranded" content="false" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="Microsoft.Help.Id" content="ContosoTopic4" />
<meta name="Microsoft.Help.F1" content=" ContosoTopic4" />
    <meta name="Language" content="en-us" />
<meta name="Microsoft.Help.TocParent" content="ContosoTopic0" />
<meta name="Microsoft.Help.TocOrder" content="4" />

</head>

<body>

</body>
</html>

主题正文

正文 (不包括主题的页眉和页脚) 将包含页面链接、备注部分、可折叠区域、代码片段和特定于语言的文本部分。 有关所呈现主题的这些方面的信息,请参阅品牌打造部分。

  1. 添加主题标题标记: <div class="title">Contoso Topic 4</div>

  2. 添加备注部分: <div class="alert"> add your table tag and text </div>

  3. 添加可折叠区域: <CollapsibleArea Expanded="1" Title="Collapsible Area Test Heading"> add text </CollapsibleArea>

  4. 添加代码片段: <CodeSnippet EnableCopyCode="true" Language="CSharp" ContainsMarkup="false" DisplayLanguage="C#" > a block of code </CodeSnippet>

  5. 添加特定于代码语言的文本: <LanguageSpecificText devLangcs="CS" devLangvb="VB" devLangcpp="C++" devLangnu="F#" /> 允许输入其他语言的注释 devLangnu= 。 例如, devLangnu="Fortran" 当代码片段 DisplayLanguage = Fortran 时显示 Fortran

  6. 添加页面链接: <a href="ms-xhelp:///?Id=ContosoTopic1">Main Topic</a>

注意

注意:对于不支持的新“显示语言” (示例,代码片段中的 F#、Cobol、Fortran) 代码着色将为单色。

示例帮助查看器主题 该代码演示如何定义元数据、代码片段、可折叠区域和特定于语言的文本。

<?xml version="1.0" encoding="utf-8"?>
<html>
<head>
<title>Contoso Topic 4</title>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="Microsoft.Help.Id" content="ContosoTopic4" />
<meta name="Microsoft.Help.F1" content=" ContosoTopic4" />
    <meta name="Language" content="en-us" />
<meta name="Microsoft.Help.TocParent" content="ContosoTopic0" />
<meta name="Microsoft.Help.TocOrder" content="4" />
<meta name="SelfBranded" content="false" />
</head>

<body>
<div class="title">Contoso Topic 4</div>

  <div id="header">
<table id="bottomTable" cellpadding="0" cellspacing="0"  width="100%">
        <tr id="headerTableRow2"><td align="left">
            <span id="nsrTitle">Contoso Topic 1</span>
          </td>
<td align="right">
</td></tr>
<tr id="headerTableRow1"><td align="left">
            <span id="runningHeaderText">Contoso Widgets & Sprockets</span>
          </td></tr>
      </table>
</div>

<h2>Table of Contents</h2>

<ul class="toc">
<li class="tocline1"><a href="#introduction" target="_self">1.0 Introduction</a></li>
<li class="tocline1"><a href="#seealso" target="_self">See Also</a></li>
</ul>

<div class="topic">

<div id="mainSection">
<div id="mainBody">

<a name="introduction"></a>
<h2>1.0 Introduction</h2>
<p>[This documentation is for sample purposes only.]</p>

<p>Contoso Topic 1 contains examples of:
<ul>
<li>Collapsible Area</li>
<li>Bookmark ("See also")</li>
<li>Code Snippets from Branding Package</li>
</ul>
 </p>
<div class="alert"><table><tr><th>
<strong>Note </strong></th></tr>
<tr><td>
<p>This is an example of a <span class="label">Note </span>section.
Call out important items for your reader in this <span class="label">Note </span>box.
</p></td></tr>
</table>
</div>
</div>

<CollapsibleArea Expanded="1" Title="Collapsible Area Test Heading">

            <a id="sectionToggle0"><!----></a>

<div>
Example of Collapsible Area
<br/>
Lorem ipsum dolor sit amet...
</div>
</CollapsibleArea>

<div id="snippetGroup" >
<CodeSnippet EnableCopyCode="true" Language="VisualBasic" ContainsMarkup="false" DisplayLanguage="Visual Basic" >
Private Sub ToolStripRenderer1_RenderGrip(sender as Object, e as ToolStripGripRenderEventArgs) _ Handles ToolStripRenderer1.RenderGrip
Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "GripBounds", e.GripBounds)
    messageBoxVB.AppendLine()
 ...
    MessageBox.Show(messageBoxVB.ToString(),"RenderGrip Event")
End Sub
</CodeSnippet>

<CodeSnippet EnableCopyCode="true" Language="CSharp" ContainsMarkup="false" DisplayLanguage="C#" >
private void ToolStripRenderer1_RenderGrip(Object sender, ToolStripGripRenderEventArgs e)
{
System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "GripBounds", e.GripBounds );
messageBoxCS.AppendLine();
...
MessageBox.Show(messageBoxCS.ToString(), "RenderGrip Event" );
}
</CodeSnippet>

<CodeSnippet EnableCopyCode="true" Language="fsharp" ContainsMarkup="false" DisplayLanguage="F#" >
some F# code
</CodeSnippet>
</div>

<h4 class="subHeading">Example of code specific text</h4>Language = <LanguageSpecificText devLangcs="CS" devLangvb="VB" devLangcpp="C++" devLangnu="F#" />

<a name="seealso"></a>
<h1 class="heading">See Also</h1>

    <div id="seeAlsoSection" class="section">
    <div class="seeAlsoStyle">
        <a href="ms-xhelp:///?Id=ContosoTopic1">Main Topic</a>
    </div>
 </div>
</div>
</div>
</body>
</html>

F1 支持

在 Visual Studio 中,选择 F1 会根据光标在 IDE 中的位置生成提供的值,并使用基于游标位置 (提供的值填充“属性包”。 当光标位于特征 x 上方时,特征 x 处于活动状态/处于焦点中,并使用值填充属性包。 选择 F1 时,将填充属性包,Visual Studio F1 代码查看客户默认的帮助源是本地还是联机, (联机是默认) ,然后根据用户设置 (联机为默认) - shell 执行 (请参阅 exe 启动参数的帮助管理员指南) 本地帮助查看器 + 关键字 (keyword) 如果本地帮助是默认值,则 (属性包中的) ,或者参数列表中具有关键字 (keyword) 的 MSDN URL。

如果为 F1 返回三个字符串(称为多值字符串),则采用第一个字词,查找命中,如果找到,我们完成:如果没有,请移动到下一个字符串。 给事项排序。 多值关键字的表示形式应是最长字符串到最短字符串。 若要在多值关键字的情况下验证这一点,请查看联机 F1 URL 字符串,其中包含所选关键字 (keyword) 。

在 Visual Studio 2012 中,我们有意在联机和脱机之间划分了更大的差距,因此,如果用户的设置为 Online,则我们只是将 F1 请求直接传递到 MSDN 上的联机查询服务,而不是通过 Visual Studio 2010 中的帮助库代理进行路由。 然后,我们依赖于“供应商内容已安装 = true”的状态来确定是否在该上下文中执行不同的操作。 如果为 true,则根据你希望为客户支持的内容执行此分析和路由逻辑。 如果为 false,则只需转到 MSDN。 如果用户的设置为“本地”,则所有调用都会转到本地帮助引擎。

F1 流程图:

F1 流

当帮助查看器默认帮助内容源设置为联机 (在浏览器中启动) :

  • Visual Studio 合作伙伴 (VSP) 功能向 F1 属性包发出值, (属性包前缀。关键字 (keyword) 注册表中找到的前缀的联机 URL) :F1 将 VSP URL+ 参数发送到浏览器。

  • Visual Studio 功能 (语言编辑器、特定于 Visual Studio 的菜单项等) :F1 向浏览器发送 Visual Studio URL。

当帮助查看器默认帮助内容源设置为本地帮助 (在帮助查看器中启动) :

  • VSP 功能关键字 (keyword) F1 属性包与本地存储索引 (即属性包 prefix.关键字 (keyword) = 本地存储索引中找到的值) :F1 呈现帮助查看器中的主题。

  • Visual Studio 功能 (VSP 无法替代从 Visual Studio 功能发出的属性包) :F1 在帮助查看器中呈现 Visual Studio 主题。

设置以下注册表值,为供应商帮助内容启用 F1 回退。 F1 回退意味着帮助查看器设置为联机查找 F1 帮助内容,并且供应商内容将本地安装到用户的硬盘驱动器。 即使默认设置针对联机帮助,帮助查看器也应查看内容的本地帮助。

  1. 在 Help 2.3 注册表项下设置 VendorContent 值:

    • 对于 32 位操作系统:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Help\v2.3\Catalogs\VisualStudio15

      “VendorContent”=dword:00000001

    • 对于 64 位操作系统:

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.3\Catalogs\VisualStudio15

      “VendorContent”=dword:00000001

  2. 在 Help 2.3 注册表项下注册合作伙伴命名空间:

    • 对于 32 位操作系统:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Help\v2.3\Partner\<namespace>

      “location”=“offline”

    • 对于 64 位操作系统:

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.3\Partner\<namespace>

      “location”=“offline”

基本本机命名空间分析

若要启用基本本机命名空间分析,请在注册表中添加名为 BaseNativeNamespaces 的新 DWORD,并将其值设置为 1, (要支持) 目录项下。 例如,如果要使用 Visual Studio 目录,则可以将 密钥添加到路径:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.3\Catalogs\VisualStudio15

当遇到采用 HEADER/METHOD 格式的 F1 关键字 (keyword) 时,将分析出“/”字符,从而生成以下构造:

  • HEADER:将是可用于在注册表中注册的命名空间

  • 方法:这将成为传递关键字 (keyword) 。

例如,给定名为 CustomLibrary 的自定义库和名为 MyTestMethod 的方法,当传入 F1 请求时,其格式将设置为 CustomLibrary/MyTestMethod

然后,用户可以将 CustomLibrary 注册为合作伙伴配置单元下的命名空间,并提供所需的任何位置密钥,传递给查询的关键字 (keyword) 将是 MyTestMethod。

在 IDE 中启用帮助调试工具

添加以下注册表项和值:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\16.0\Dynamic Help

值:在零售数据中显示调试输出:是

在 IDE 的“帮助”菜单项下,选择“ 调试帮助上下文”。

内容元数据

在下表中,出现在方括号之间的任何字符串都是一个占位符,必须用已识别的值替换。 例如,在 <meta name=“Microsoft.Help.Locale” content=“[language code]” />, “[language code]” 中,必须替换为“en-us”之类的值。

属性 (HTML 表示形式) 说明
< meta name=“Microsoft.Help.Locale” content=“[language-code]” /> 设置本主题的区域设置。 如果在主题中使用此标记,则它必须只使用一次,并且必须将其插入到任何其他 Microsoft 帮助标记上方。 如果未使用此标记,则通过使用与产品区域设置关联的断字符(如果已指定)为主题的正文文本编制索引;否则,使用 en-us 断字符。 此标记符合 ISOC RFC 4646。 若要确保 Microsoft 帮助正常工作,请使用此属性而不是常规语言属性。
< meta name=“Microsoft.Help.TopicLocale” content=“[language-code]” /> 当还使用其他区域设置时,为本主题设置区域设置。 如果在主题中使用此标记,则必须只使用一次。 当目录包含多种语言的内容时,请使用此标记。 目录中的多个主题可以具有相同的 ID,但每个主题必须指定唯一的 TopicLocale。 指定与目录区域设置匹配的 TopicLocale 的主题是目录中显示的主题。 但是,该主题的所有语言版本都显示在搜索结果中。
< title>[Title]</title> 指定本主题的标题。 此标记是必需的,并且只能在主题中使用一次。 如果主题正文不包含标题 <div> 部分,则此标题将显示在主题和目录中。
< meta name=“ Microsoft.Help.Keywords” content=“[aKeywordPhrase]”/> 指定显示在帮助查看器的索引窗格中的链接的文本。 单击链接时,将显示主题。 可以为一个主题指定多个索引关键字,如果不希望指向本主题的链接显示在索引中,则可以省略此标记。 早期版本的帮助中的“K”关键字可以转换为此属性。
< meta name=“Microsoft.Help.Id” content=“[TopicID]”/> 设置本主题的标识符。 此标记是必需的,并且只能在主题中使用一次。 ID 在具有相同区域设置的目录中的主题中必须是唯一的。 在另一个主题中,可以使用此 ID 创建指向此主题的链接。
< meta name=“Microsoft.Help.F1” content=“[System.Windows.Controls.Primitives.IRecyclingItemContainerGenerator]”/> 指定本主题的 F1 关键字 (keyword) 。 可以为一个主题指定多个 F1 关键字,如果不希望在应用程序用户按 F1 时显示此主题,则可以省略此标记。 通常,只为主题指定一个 F1 关键字 (keyword) 。 早期帮助版本中的“F”关键字可以转换为此属性。
< meta name=“Description” content=“[topic description]” /> 提供本主题中内容的简短摘要。 如果在主题中使用此标记,则必须只使用一次。 此属性由查询库直接访问;它不存储在索引文件中。
meta name=“Microsoft.Help.TocParent” content=“[parent_Id]”/> 在目录中指定本主题的父主题。 此标记是必需的,并且只能在主题中使用一次。 该值是父级的 Microsoft.Help.Id。 一个主题在目录中只能有一个位置。 “-1”被视为 TOC 根的主题 ID。 在 Visual Studio 2013 中,该页是 Help Viewer 主页。 这也是我们专门将 TocParent=-1 添加到某些主题以确保它们在顶层显示的原因。 帮助查看器主页是系统页面,因此不可替换。 如果 VSP 尝试添加 ID 为 -1 的页面,它可能会被添加到内容集,但帮助查看器将始终使用系统页面 - 帮助查看器主页
< meta name=“Microsoft.Help.TocOrder” content=“[positive integer]”/> 指定本主题相对于其对等主题在目录中的显示位置。 此标记是必需的,并且只能在主题中使用一次。 该值是一个整数。 指定较低值整数的主题显示在指定较高值整数的主题上方。
< meta name=“Microsoft.Help.Product” content=“[product code]”/> 指定本主题描述的产品。 如果在主题中使用此标记,则必须只使用一次。 此信息也可以作为传递给帮助索引器的参数提供。
< meta name=“Microsoft.Help.ProductVersion” content=“[version number]”/> 指定本主题描述的产品版本。 如果在主题中使用此标记,则必须只使用一次。 此信息也可以作为传递给帮助索引器的参数提供。
< meta name=“Microsoft.Help.Category” content=“[string]”/> 由产品用于标识内容的子部分。 可以标识一个主题的多个子节,如果不希望链接标识任何子节,则可以省略此标记。 从早期版本的帮助转换主题时,此标记用于存储 TargetOS 和 TargetFrameworkMoniker 的属性。 内容的格式为 AttributeName:AttributeValue。
< meta name=“Microsoft.Help.TopicVersion content=”[topic version number]“/> 当目录中存在多个版本时,指定主题的此版本。 由于不保证 Microsoft.Help.Id 是唯一的,因此当目录中存在多个主题版本时,需要此标记,例如,当目录包含.NET Framework 3.5 的主题和.NET Framework 4 的主题,并且两者具有相同 Microsoft.Help.Id。
< meta name=“SelfBranded” content=“[TRUE or FALSE]”/> 指定本主题是使用帮助库管理器启动品牌包还是特定于主题的品牌包。 此标记必须为 TRUE 或 FALSE。 如果为 TRUE,则关联主题的品牌包将替代在帮助库管理器启动时设置的品牌包,以便主题按预期呈现,即使它与其他内容的呈现不同。 如果为 FALSE,则根据帮助库管理器启动时设置的品牌包呈现当前主题。 默认情况下,帮助库管理器假定自品牌为 false,除非 SelfBranded 变量声明为 TRUE;因此,不必声明 <meta name=“SelfBranded” content=“FALSE”/>。

创建品牌包

Visual Studio 版本包含许多不同的 Visual Studio 产品,包括适用于 Visual Studio 合作伙伴的独立和集成 shell。 其中每个产品都需要某种程度的基于主题的帮助内容品牌支持,这是该产品独有的。 例如,Visual Studio 主题需要具有一致的品牌表示形式,而包装 ISO Shell 的 SQL Studio 需要针对每个主题进行自己独特的帮助内容品牌打造。 集成 Shell 合作伙伴可能希望其帮助主题位于父 Visual Studio 产品帮助内容中,同时保留自己的主题品牌。

品牌包由包含帮助查看器的产品安装。 对于 Visual Studio 产品:

  • help Viewer 2.3 应用根) 中安装了回退品牌包 (Branding_<locale.mshc> (示例:C:\Program Files (x86) \Microsoft Help Viewer\v2.3,由 Help Viewer 语言包) 。 这用于未安装产品品牌包 () 未安装任何内容或已安装的品牌包损坏的情况。 使用应用根回退品牌包时,将忽略徽标 (Visual Studio 元素和反馈) 。

  • 从内容包服务安装 Visual Studio 内容时,首次) 内容安装方案 (也会安装品牌包。 如果品牌包有更新,则会在下一个内容更新或其他包安装操作发生时安装更新。

Microsoft Help Viewer 支持基于主题元数据的主题品牌打造。

  • 如果主题元数据定义自品牌 = true,则按原样呈现主题, (品牌) 不执行任何操作。

  • 如果主题元数据定义自品牌 = false,请使用与 TopicVendor 元数据值关联的品牌包。

  • 如果主题元数据在供应商 MSHA> 中定义 name=“Microsoft.Help.TopicVendor” 内容=< 品牌包名称,请使用内容值中定义的品牌包。

  • 在 Visual Studio 目录中,有品牌包的优先级应用。 首先应用 Visual Studio 默认品牌,然后,如果在主题元数据中定义并受相关品牌包 (支持(如安装 msha) 中定义的那样),供应商定义的品牌将作为替代应用。

品牌元素通常分为三main类别:

  • 标头元素 (示例包括反馈链接、条件免责声明文本、徽标)

  • 内容行为 (示例包括展开/折叠控件文本元素和代码片段元素)

  • 页脚元素 (示例版权)

被视为品牌元素的项目包括此规范) 中详述 (:

  • 目录/产品徽标 (示例,Visual Studio)

  • 反馈链接和电子邮件元素

  • 免责声明文本

  • 版权文本

Visual Studio Help Viewer 品牌打造包中的支持文件包括:

  • 图形 (徽标、图标等)

  • Branding.js - 支持内容行为的脚本文件

  • Branding.xml - 跨目录内容一致使用的字符串。 注意:对于branding.xml中的 Visual Studio 本地化文本元素,请包含 _locID=“<unique value>”

  • Branding.css - 表示一致性的样式定义

  • Printing.css - 一致的打印演示文稿的样式定义

如上所述,品牌包与主题相关联:

  • 在元数据中定义了 SelfBranded = false 时,主题将继承目录品牌包

  • 或者,如果 SelfBranded = false,并且 MSHA 中定义了唯一的品牌包,并在安装内容时可用

对于 (VSP 内容 SelfBranded=True) 实现自定义品牌包的 VSP,一种方法是从随 Help Viewer () 一起安装的回退品牌包开始,然后根据需要更改文件的名称。 Branding_<locale.mshc> 文件是文件扩展名更改为 .mshc 的 zip 文件,因此只需将扩展名从 .mshc 更改为.zip并提取内容。 请参阅以下内容,了解品牌包元素,并根据需要进行修改 (例如,将徽标更改为 VSP 徽标和Branding.xml文件中徽标的引用、更新每个 VSP 细节Branding.xml等) 。

完成所有修改后,创建包含所需品牌元素的 zip 文件,并将扩展名更改为 .mshc。

若要关联自定义品牌包,请创建 MSHA,其中包含对品牌 mshc 文件的引用以及包含) 主题的内容 mshc (。 请参阅下面的“MSHA”,了解如何创建基本 MSHA。

当主题包含 <meta name=“Microsoft.Help.SelfBranded” content=“false”/>时,Branding.xml 文件包含用于在主题中持续呈现特定项的元素列表。 下面列出了 Branding.xml 文件中元素的 Visual Studio 列表。 此列表旨在用作 ISO Shell 采用者的模板,用于修改这些元素 (例如徽标、反馈和版权) 以满足自己的产品品牌需求。

注意:“{n}”记下的变量具有代码依赖项 - 删除或更改这些值将导致错误,并可能导致应用程序崩溃。 Visual Studio 品牌包中包含本地化标识符 (示例 _locID=“codesnippet.n”) 。

Branding.xml

元素 说明
功能: CollapsibleArea
使用: 展开折叠内容控件文本
元素
ExpandText 展开
CollapseText 折叠
功能: CodeSnippet
使用: 代码片段控件文本。 注意:具有“非中断”空间的代码片段内容将更改为空格。
元素
CopyToClipboard 复制到剪贴板
ViewColorizedText 视图着色
CombinedVBTabDisplayLanguage Visual Basic (示例)
VBDeclaration 声明
VBUsage 使用情况
功能: 反馈、页脚和徽标
使用: 为客户提供反馈控件,以便通过电子邮件提供有关当前主题的反馈。 内容的版权文本。 徽标定义。
元素 值 (可以修改这些字符串以满足内容采用者的需求。)
版权 © 2013 微软公司。 保留所有权利。
SendFeedback <a href=“{0}” {1}>将有关本主题的反馈</a> 发送给 Microsoft。
FeedbackLink
LogoTitle Visual Studio 2013
LogoFileName vs_logo_bk.gif
LogoFileNameHC vs_logo_wh.gif
功能: 免责声明
使用: 机器翻译内容的一组特定于大小写的免责声明。
元素
MT_Editable 本文是机器翻译的。 如果有 Internet 连接,请选择“联机查看此主题”,以在可编辑模式下同时查看原始英语内容的页面。
MT_NonEditable 本文是机器翻译的。 如果有 Internet 连接,请选择“联机查看此主题”,以在可编辑模式下同时查看原始英语内容的页面。
MT_QualityEditable 本文已手动翻译。 如果有 Internet 连接,请选择“联机查看此主题”,以在可编辑模式下同时查看原始英语内容的页面。
MT_QualityNonEditable 本文已手动翻译。 如果有 Internet 连接,请选择“联机查看此主题”,以在可编辑模式下同时查看原始英语内容的页面。
MT_BetaContents 本文是计算机翻译的初步版本。 如果有 Internet 连接,请选择“联机查看此主题”,以在可编辑模式下同时查看原始英语内容的页面。
MT_BetaRecycledContents 本文已手动翻译为初步版本。 如果有 Internet 连接,请选择“联机查看此主题”,以在可编辑模式下同时查看原始英语内容的页面。
功能: LinkTable
使用: 支持联机主题链接
元素
LinkTableTitle 链接表
TopicEnuLinkText 查看计算机上提供的本主题的英文版本<>。
TopicOnlineLinkText 查看本主题 <a href=“{0}” {1}>online</a>
OnlineText 联机
功能: 视频音频控件
使用: 显示视频内容的元素和文本
元素
MultiMediaNotSupported 必须安装 Internet Explorer 9 或更高版本才能支持 {0} 内容。
VideoText 显示视频
AudioText 流式处理音频
OnlineVideoLinkText <p>若要查看与本主题关联的视频,请单击 {0}<href=“”{1}>{2}here</a>。</P>
OnlineAudioLinkText <p>若要收听与本主题关联的音频,请单击 {0}<href=“”{1}>{2}here</a>。</P>
功能: “未安装内容”控件
使用: 用于呈现contentnotinstalled.htm的文本元素 (字符串)
元素
ContentNotInstalledTitle 计算机上未找到任何内容。
ContentNotInstalledDownloadContentText <p>若要将内容下载到计算机,<请单击“管理”{0}{1}>选项卡</a>。</P>
ContentNotInstalledText <p>计算机上未安装任何内容。 有关本地帮助内容安装,请与管理员联系。</P>
功能: “找不到主题”控件
使用: 用于呈现topicnotfound.htm的文本元素 (字符串)
元素
TopicNotFoundTitle 在计算机上找不到请求的主题。
TopicNotFoundViewOnlineText <p>在您的计算机上找不到您请求的主题,但您可以通过 <href=“”{0}{1}> 联机</a> 查看主题。</P>
TopicNotFoundDownloadContentText <p>查看指向类似主题的链接的导航窗格,或 <单击 href=“{0}” {1}>单击“管理”选项卡</a> 以将内容下载到计算机。</P>
TopicNotFoundText <p>在您的计算机上找不到您请求的主题。</P>
功能: 主题损坏的控件
使用: 用于呈现topiccorrupted.htm的文本元素 (字符串)
元素
TopicCorruptedTitle 无法显示请求的主题。
TopicCorruptedViewOnlineText <p>Help Viewer 无法显示请求的主题。 主题的内容或基础系统依赖项中可能存在错误。</P>
功能: 主页控件
使用: 支持显示帮助查看器顶级节点内容的文本。
元素
HomePageTitle 帮助查看器主页
HomePageIntroduction <p>欢迎使用 Microsoft 帮助查看器,这是使用 Microsoft 工具、产品、技术和服务的每个人的基本信息来源。 借助帮助查看器,可以访问操作说明和参考信息、示例代码、技术文章等。 若要查找所需内容,请浏览目录、使用全文搜索或使用关键字 (keyword) 索引在内容中导航。</P>
HomePageContentInstallText <p><br />使用 <a href=“{0}” {1}>管理内容</a> 选项卡执行以下操作:<ul><li>将内容添加到计算机。</li><li>检查本地内容的更新。</li><li>从计算机中删除内容。</li></ul></p>
HomePageInstalledBooks 已安装书籍
HomePageNoBooksInstalled 计算机上未找到任何内容。
HomePageHelpSettings 帮助内容设置
HomePageHelpSettingsText <p>当前设置是本地帮助。 帮助查看器显示已安装在计算机上的内容。<br />若要更改帮助内容的源,请在 Visual Studio 菜单栏上,选择“ <span style=”{0}“>Help,设置帮助首选项</范围>。<br /></p>
兆 字节 MB

branding.js

branding.js 文件包含 Visual Studio 帮助查看器品牌元素使用的 JavaScript。 下面是品牌元素和支持 JavaScript 函数的列表。 要为此文件本地化的所有字符串都在此文件顶部的“可本地化字符串”部分中定义。 已为 branding.js 文件中的 loc 字符串创建 ICL 文件。

品牌功能 JavaScript 函数 说明
无 功。。。 定义变量
获取用户代码语言 setUserPreferenceLang 将索引 # 映射到代码语言
设置和获取 Cookie 值 getCookie、setCookie
继承的成员 changeMembersLabel 展开/折叠继承的成员
当 SelfBranded=False 时 onLoad 读取查询字符串以检查是否为打印请求。 设置所有代码键以聚焦用户首选选项卡。如果是打印请求,则将 isPrinterFriendly 设置为 true。 检查高对比度模式。
代码片段 addSpecificTextLanguageTagSet
getIndexFromDevLang
ChangeTab
setCodesnippetLang
setCurrentLang
CopyToClipboard
CollapsibleArea addToCollapsibleControlSet 将所有可折叠控件对象写入列表中。
CA_Click 基于可折叠区域的状态,定义要呈现的图像和文本
徽标的对比度支持 isBlackBackground () 调用以确定背景是否为黑色。 仅在高对比度模式下准确。
isHighContrast () 使用彩色范围检测高对比度模式
onHighContrast (黑色) 检测到高对比度时调用
LST 功能
addToLanSpecTextIdSet (id)
updateLST (currentLang)
getDevLangFromCodeSnippet (lang)
多媒体功能 描述文字 (begin、end、text、style)
findAllMediaControls (normalizedId)
getActivePlayer (normalizedId)
captionsOnOff (id)
toSeconds (t)
getAllComments (节点)
styleRectify (styleName, styleValue)
showCC (ID)
副标题 (id)

HTM 文件

品牌打造包包含一组 HTM 文件,这些文件支持向帮助内容用户传达关键信息的方案,例如,主页包含描述安装了哪些内容集的部分,以及在本地主题集中找不到主题时告知用户的页面。 可以根据产品修改这些 HTM 文件。 ISO Shell 供应商能够采用默认品牌包,并更改这些页面的行为和内容以满足其需求。 这些文件引用其各自的品牌包,以便品牌标记从branding.xml文件获取相应的内容。

文件 使用 显示的内容源
homepage.htm 这是一个页面,显示当前安装的内容,以及适合向用户呈现其内容的任何其他消息。 此文件具有附加的元数据属性“Microsoft.Help.Id” content=“-1”,该属性将此内容放置在本地内容目录的顶部。
<META_HOME_PAGE_TITLE_ADD /> Branding.xml,标记 <HomePageTitle>
<HOME_PAGE_INTRODUCTION_SECTION_ADD /> Branding.xml,标记 <HomePageIntroduction>
<HOME_PAGE_CONTENT_INSTALL_SECTION_ADD /> Branding.xml,标记 <HomePageContentInstallText>
<HOME_PAGE_BOOKS_INSTALLED_SECTION_ADD /> 标题部分Branding.xml标记<HomePageInstalledBooks>、从应用程序生成的数据、 <未安装书籍时 HomePageNoBooksInstalled> 。
<HOME_PAGE_SETTINGS_SECTION_ADD /> 标题部分Branding.xml标记 <HomePageHelpSettings>,节文本 <HomePageHelpSettingsText>。
topiccorrupted.htm 如果主题存在于本地集中,但出于某种原因无法显示 (损坏的内容) 。
<META_TOPIC_CORRUPTED_TITLE_ADD /> Branding.xml,标记 <TopicCorruptedTitle>
<TOPIC_CORRUPTED_SECTION_ADD /> Branding.xml,标记 <TopicCorruptedViewOnlineText>
topicnotfound.htm 在本地内容集中找不到主题,或者联机不可用时
<META_TOPIC_NOT_FOUND_TITLE_ADD /> Branding.xml,标记 <TopicNotFoundTitle>
<META_TOPIC_NOT_FOUND_ID_ADD /> Branding.xml,标记 <TopicNotFoundViewOnlineText> + <TopicNotFoundDownloadContentText>
<TOPIC_NOT_FOUND_SECTION_ADD /> Branding.xml,标记 <TopicNotFoundText>
contentnotinstalled.htm 没有为产品安装本地内容时。
<META_CONTENT_NOT_INSTALLED_TITLE_ADD /> Branding.xml,标记 <ContentNotInstalledTitle>
<META_CONTENT_NOT_INSTALLED_ID_ADD /> Branding.xml,标记 <ContentNotInstalledDownloadContentText>
<CONTENT_NOT_INSTALLED_SECTION_ADD /> Branding.xml,标记 <ContentNotInstalledText>

CSS 文件

Visual Studio 帮助查看器品牌包包含两个 css 文件,以支持一致的 Visual Studio 帮助内容呈现:

  • Branding.css - 包含用于呈现的 css 元素,其中 SelfBranded=false

  • Printer.css - 包含用于呈现的 css 元素,其中 SelfBranded=false

Branding.css 文件包括 Visual Studio 主题演示文稿的定义, (请注意,包服务的 Branding_<locale.mshc> 中包含的 branding.css 可能会更改) 。

图形文件

Visual Studio 内容显示 Visual Studio 徽标以及其他图形。 Visual Studio 帮助查看器品牌包中图形文件的完整列表如下所示。

文件 使用 示例
clear.gif 用于呈现可折叠区域
footer_slice.gif 页脚演示文稿
info_icon.gif 显示信息时使用 免责声明
online_icon.gif 此图标将与联机链接相关联
tabLeftBD.gif 用于呈现代码片段容器
tabRightBD.gif 用于呈现代码片段容器
vs_logo_bk.gif 用于Branding.xml标记 <LogoFileName> 中定义的普通对比度徽标引用。 对于 Visual Studio 产品,徽标名称vs_logo_bk.gif。
vs_logo_wh.gif 用于Branding.xml标记 <LogoFileNameHC> 中定义的高对比度徽标引用。 对于 Visual Studio 产品,徽标名称vs_logo_wh.gif。
ccOff.png 标题图形
ccOn.png 标题图形
ImageSprite.png 用于呈现可折叠区域 展开或折叠图形

部署一组主题

这是一个简单而快速的教程,介绍如何创建由 MSHA 文件和包含主题的 cab 集或 MSHC 组成的帮助查看器内容部署集。 MSHA 是一个 XML 文件,用于描述一组 cabs 或 MSHC 文件。 帮助查看器可以读取 MSHA 以获取 (.CAB或 的内容列表。MSHC 文件) 可用于本地安装。

这只是描述帮助查看器 MSHA 的非常基本 XML 架构的入门。 下面提供了一个示例实现,简要概述和示例 HelpContentSetup.msha。

就本入门而言,MSHA 的名称为 HelpContentSetup.msha, (文件名可以是任何名称,扩展名为 。MSHA) 。 HelpContentSetup.msha (以下示例) 应包含可用的 cab 或 MSHC 列表。 文件类型在 MSHA 中必须一致 (不支持 MSHA 和 CAB 文件类型的组合) 。 对于每个 CAB 或 MSHC,应有一个 <div class=“package”>...</div> (请参阅以下示例) 。

注意:在下面的实现示例中,我们包含了品牌包。 若要获取所需的 Visual Studio 内容呈现元素和内容行为,必须包含这一点。

示例 HelpContentSetup.msha 文件: (替换“内容集名称 1”和“内容集名称 2”等。替换为文件名.)

<html>
<head />
<body class="vendor-book">
<div class="details">
<span class="vendor">Your Company</span>
<span class="locale">en-us</span>
<span class="product">Your Company Help Content</span>
<span class="name">Your Company Help Content</span>
</div>
<div class="package-list">
<div class="package">
<span class="name">Your_Company _Content_Set_1</span>
<span class="deployed">True</span>
<a class="current-link" href="Your_Company _Content_Set_1.mshc">Your_Company _Content_Set_1.mshc </a>
</div>
<div class="package">
<span class="name">Your_Company _Content_Set_2</span>
<span class="deployed">True</span>
<a class="current-link"href=" Your_Company _Content_Set_2.mshc "> Your_Company _Content_Set_2.mshc </a>
</div>.
  1. 创建本地文件夹,类似于“C:\SampleContent”

  2. 对于此示例,我们将使用 MSHC 文件来包含主题。 MSHC 是文件扩展名从 .zip 更改为 的 zip 文件。MSHC。

  3. 创建以下 HelpContentSetup.msha 作为文本文件, (记事本用于创建文件) 并将其保存到上面记下的文件夹, (请参阅步骤 1) 。

类“Branding”存在并且是唯一的。 品牌 mshc 包含在本入门中,因此安装的内容将具有品牌,MSHC 中包含的内容行为将具有品牌包中包含的相应支持元素。 如果不这样做,当系统查找不属于已撕裂 (安装) 内容的支持项时,将导致错误。

若要获取 Visual Studio 品牌包,请将 C:\Program Files (x86) \Microsoft Help Viewer\v2.3\ 中的 Branding_en-US.mshc 文件复制到工作文件夹。

<html>
<head />
<body class="vendor-book">
<div class="details">
<span class="vendor">Your Company</span>
<span class="locale">en-us</span>
<span class="product">Your Company Help Content</span>
<span class="name">Your Company Help Content</span>
</div>
<div class="package-list">
<div class="package">
<span class="name">Your_Company _Content_Set_1</span>
<span class="deployed">True</span>
<a class="current-link" href="Your_Company _Content_Set_1.mshc">Your_Company _Content_Set_1.mshc </a>
</div>
<div class="package">
<span class="name">Your_Company _Content_Set_2</span>
<span class="deployed">True</span>
<a class="current-link"href=" Your_Company _Content_Set_2.mshc "> Your_Company _Content_Set_2.mshc </a>
</div>
<div class="package">
<span class="packageType">branding</span>
<span class="name">Branding_en-US</span>
<span class="deployed">True</span>
<a class="current-link" href="Branding_en-US.mshc">Branding_en-US.mshc</a>
</div>
</div>
</body>
</html>

摘要

使用和扩展上述步骤将使 VSP 能够部署 Visual Studio 帮助查看器的内容集。

向 Visual Studio Shell (集成和隔离) 添加帮助

介绍

本演练演示如何将帮助内容合并到 Visual Studio Shell 应用程序中,然后将其部署。

要求

  1. Visual Studio 2013

  2. Visual Studio 2013独立 Shell Redist

概述

Visual Studio 2013 Shell 是可基于应用程序的 Visual Studio 2013 IDE 的一个版本。 此类应用程序包含独立 Shell 以及你创建的扩展。 使用 Visual Studio 2013 SDK 中包含的独立 Shell 项目模板来生成扩展。

创建基于独立 Shell 的应用程序及其帮助的基本步骤:

  1. (Microsoft 下载) 获取Visual Studio 2013 ISO Shell 可再发行组件。

  2. 在 Visual Studio 中,创建基于独立 Shell 的帮助扩展,例如,在本演练后面部分介绍的 Contoso 帮助扩展。

  3. 将扩展和 ISO Shell 可再发行组件包装到部署 MSI 中, (应用程序设置) 。 本演练不包括设置步骤。

创建 Visual Studio 内容存储。 对于集成 Shell 方案,将 Visual Studio12 更改为产品目录名称,如下所示:

  • 创建文件夹 C:\ProgramData\Microsoft\HelpLibrary2\Catalogs\VisualStudio15。

  • 创建名为 CatalogType.xml 的文件,并将其添加到 文件夹中。 该文件应包含以下代码行:

    <?xml version="1.0" encoding="UTF-8"?>
    <catalogType>UserManaged</catalogType>
    

在注册表中定义内容存储。 对于集成 Shell,请将 VisualStudio15 更改为产品目录名称:

  • HKLM\SOFTWARE\Wow6432Node\Microsoft\Help\v2.3\Catalogs\VisualStudio15

    键:LocationPath 字符串值:C:\ProgramData\Microsoft\HelpLibrary2\Catalogs\VisualStudio15\

  • HKLM\SOFTWARE\Wow6432Node\Microsoft\Help\v2.3\Catalogs\VisualStudio15\en-US

    键:CatalogName 字符串值:Visual Studio 2013文档

创建项目

若要创建独立 Shell 扩展,请执行以下操作:

  1. 在 Visual Studio 中的 “文件”下,选择“ 新建项目”,在“ 其他项目类型” 下选择 “扩展性”,然后选择 “Visual Studio Shell 隔离”。 将项目 ContosoHelpShell 命名为) ,以基于 Visual Studio 独立 Shell 模板创建扩展性项目。

  2. 在 解决方案资源管理器,在 ContosoHelpShellUI 项目的“资源文件”文件夹中,打开 ApplicationCommands.vsct。 请确保在搜索“No_Help”) (注释掉此行: <!-- <define name="No_HelpMenuCommands"/> -->

  3. 选择 F5 键以编译并运行 调试。 在独立 Shell IDE 的实验实例中,选择“ 帮助 ”菜单。 确保显示“ 查看帮助”、“ 添加和删除帮助内容”以及 “设置帮助首选项” 命令。

  4. 在 解决方案资源管理器,在 ContosHelpShell 项目的 Shell 自定义文件夹中,打开 ContosoHelpShell.pkgdef。 若要定义 Contoso 帮助目录,请添加以下行:

     [$RootKey$\Help]
    "Product"="Contoso"
    "Catalog"="Contoso"
    "Version"="100"
    "BrandingPackage"="ContosoBrandingPackage.mshc"
    
  5. 在 解决方案资源管理器,在 ContosHelpShell 项目的 Shell 自定义文件夹中,打开 ContosoHelpShell.Application.pkgdef。 若要启用 F1 帮助,请添加以下行:

    // F1 Help Provider
    
    [$RootKey$\HelpProviders\{C99BDC23-FF29-46bf-9658-ADD634CCAED8}]
    "Name"="13407"
    "Package"="{DA9FB551-C724-11d0-AE1F-00A0C90FFFC3}"
    @="Help3 Provider"
    [$RootKey$\HelpProviders]
    @="{C99BDC23-FF29-46bf-9658-ADD634CCAED8}"
    [$RootKey$\Services\{C99BDC23-FF29-46bf-9658-ADD634CCAED8}]
    "Name"="Help3 Provider"
    @="{4A791146-19E4-11D3-B86B-00C04F79F802}"
    
  6. 在 解决方案资源管理器,在 ContosoHelpShell 解决方案的上下文菜单上,选择“属性”菜单项。 在“配置属性”下,选择“Configuration Manager”。 在 “配置” 列中,将每个“调试”值更改为“发布”。

  7. 生成解决方案。 这会在发布文件夹中创建一组文件,将在下一部分使用。

若要像部署一样对此进行测试,请运行以下命令:

  1. 在要将 Contoso 部署到的计算机上,安装从上面下载的 () ISO Shell。

  2. 在 \\Program Files (x86) \ 中创建一个文件夹,并将其命名为 Contoso

  3. 将内容从 ContosoHelpShell 版本文件夹复制到 \\Program Files (x86) \Contoso\ 文件夹。

  4. 通过在“开始”菜单中选择“运行”并输入 Regedit,启动注册表编辑器。 在注册表编辑器中,选择 “文件”,然后选择“ 导入”。 浏览到 ContosoHelpShell 项目文件夹。 在“ContosoHelpShell”子文件夹中,选择“ContosoHelpShell.reg”。

  5. 创建内容存储:

    对于 ISO Shell - 创建 Contoso 内容存储 C:\ProgramData\Microsoft\HelpLibrary2\Catalogs\ContosoDev12

    对于Visual Studio 2013集成 Shell,请创建文件夹 C:\ProgramData\Microsoft\HelpLibrary2\Catalogs\VisualStudio15

  6. 创建CatalogType.xml并将其添加到上一步 (内容存储) 包含:

    <?xml version="1.0" encoding="UTF-8"?>
    <catalogType>UserManaged</catalogType>
    
  7. 添加以下注册表项:

    HKLM\SOFTWARE\Wow6432Node\Microsoft\Help\v2.3\Catalogs\VisualStudio15Key: LocationPath String 值:

    对于 ISO Shell:

    C:ProgramDataMicrosoftHelpLibrary2CatalogsVisualStudio15

    Visual Studio 2013集成 Shell:

    C:ProgramDataMicrosoftHelpLibrary2CatalogsVisualStudio15en-US

    键:CatalogName 字符串值:Visual Studio 2013文档。 对于 ISO Shell,这是目录的名称。

  8. 将内容 (cab 或 MSHC 和 MSHA) 复制到本地文件夹。

  9. 用于测试内容存储的集成 Shell 命令行示例。 对于 ISO Shell,请根据需要更改 catalog 和 launchingApp 值以匹配产品。

    “C:\Program Files (x86) \Microsoft Help Viewer\v2.3\HlpViewer.exe” /catalogName VisualStudio15 /helpQuery method=“page&id=ContosoTopic0” /launchingApp Microsoft,VisualStudio,12.0

  10. 从 Contoso 应用根) 启动 Contoso 应用程序 (。 在 ISO Shell 中,选择 “帮助 ”菜单项,并将 “设置帮助首选项” 更改为 “使用本地帮助”。

  11. 在 shell 中,选择“ 帮助 ”菜单项,然后选择“ 查看帮助”。 本地帮助查看器应启动。 选择“ 管理内容 ”选项卡。在 “安装源”下,选择 “磁盘 ”选项按钮。 选择 “...” 按钮并浏览到包含 Contoso 内容的本地文件夹, (复制到上述步骤) 的本地文件夹。 选择“HelpContentSetup.msha”。 Contoso 现在应显示为书籍选择中的书籍。 选择 “添加”,然后选择右下角 (“ 更新 ”按钮) 。

  12. 在 Contoso IDE 中,选择 F1 键以测试 F1 功能。

其他资源

有关运行时 API,请参阅 Windows 帮助 API

有关如何利用帮助 API 的详细信息,请参阅 帮助查看器代码示例

可以在 开发者社区 上提交功能建议。