将 VSIX 中的 CHM 帮助文件添加到分布式开发人员指南

Adding a CHM help file in VSIX to distributed developer guide

我正在编写 VSIX 来分发带有 VS 2013 向导的多项目模板,它允许用户为我们的应用程序编写扩展。我在提供用户指南文档(一个 chm 文件)和模板时遇到问题。 VSIX 清单允许我提供 "Getting Started Guide",但是这些功能支持的文件不包括 "CHM" 文件。

我们使用 RoboHelp 创建 CHM,也有创建 html 文件的选项。然而,创建的 html 文件是分布在多个文件夹中的多个文件(有一个索引页面,其中包含所有其他 html 文件的 link)。我不确定如何将这些文件打包到 VSIX 中。

我这里有几个问题;

  1. 我们是否可以 运行 任何脚本或批处理文件作为 vsix 安装?
  2. 是否可以创建一个 Windows 开始菜单文件夹来显示 link 到 chm 文件?
  3. 如果我将 "Getting Started Guide" 指向任何内部目录 html 文件。 "Getting Started" link 在 "Extensions and Updates" 中不可用, 有什么解决办法吗?
  4. 我做错了吗?有没有更好的方法来提供模板 & 有帮助吗?

如果我决定部署html帮助;我正在考虑部署入门帮助的压缩副本,其中包含许多文件夹和文件,然后在 vsix 安装期间解压缩。否则我需要将这 100 多个文件中的每一个标记为 "Include in VSIX"

1:您可以 运行 在启动扩展程序时使用任何代码。 2:您可以将任何命令添加到工具菜单

您可以将 .chm(或任何其他文件类型)添加到包项目中,select 解决方案资源管理器中的文件,显示文件的属性 window(不是项目,并将 "Include in VSIX" 属性 设置为 true。

  1. 制作 chm 文件作为 vsix 的一部分并将其标记为 "Include in VSIX" 作为 @Carlos Quintero 建议
  2. 创建一个新的 Visual Studio 包项目(使用模板 -> Visual C# -> 可扩展性 -> Visual Studio 包)为我们的 sdk 帮助添加一个新的菜单项VS IDE "Help" menu.Visual 将显示 Studio 包向导

    第 1 页)欢迎页面

    第 2 页)Select 一种编程语言:允许我们选择一种编程语言和对程序集进行签名的方式

    第3页)基本VSPackage信息:如公司名称、VSPackage名称、图标等

    第 4 页)Select VSPackage 选项:Select 菜单命令复选框,此菜单项将添加到 VS IDE -> 工具

    第 5 页)命令选项:提供菜单、名称和 ID 的信息。 提供此信息后 "Finish" 向导使用按钮 提供。

  3. 打开新建工程中的“.vsct”文件,找到"IDM_VS_MENU_TOOLS"修改为"IDM_VS_MENU_HELP"将菜单项移动到VSIDE -> 帮助

  4. 项目的主要classMenuItemCallback方法打开chm文件

    private void MenuItemCallback(object sender, EventArgs e){
    string codeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
    UriBuilder uri = new UriBuilder(codeBase);
    string path = Uri.UnescapeDataString(uri.Path);
    string helpFilePath = string.Format("file://{0}\myHelp.chm", System.IO.Path.GetDirectoryName(path))
    System.Windows.Forms.Help.ShowHelp(null, helpFilePath);    }