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



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

我们使用RoboHelp来创建CHM,还有一个创建html文件的选项。然而,创建的html文件是分布在多个文件夹中的多个文件(有一个索引页面,它具有指向所有其他html文件的链接)。我不知道如何将这些文件打包到VSIX中。

我在这里没有什么问题;

  1. 我们是否可以运行任何脚本或批处理文件作为vsix安装
  2. 是否可以创建一个Windiows Start manu文件夹来显示到chm文件的链接
  3. 如果我将"入门指南"指向任何内部目录html文件。"扩展和更新"中没有"入门"链接,周围有工作吗
  4. 我做错了吗?有没有更好的方法来提供模板&帮助

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

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

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

  1. 将chm文件作为vsix的一部分,并将其标记为"包含在vsix中"由@Carlos Quintero建议
  2. 创建一个新的Visual Studio包项目(使用Templates->Visual C#->Extensibility->Visual Studio Package),以便在VS IDE"help"菜单下为我们的sdk帮助添加一个新菜单项。Visual Studio包向导将显示

    页面1)欢迎页面

    第2页)选择编程语言:允许我们选择一种编程语言&签署组装的方式

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

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

    Page5)命令选项:为菜单提供信息,名称&id。提供此信息后,使用按钮"完成"向导假如

  3. 打开新建项目中的".vsct"文件,查找"IDM_VS_MENU_TOOLS"并将其更改为"IDM_VS _MENU_HELP",将菜单项移动到VS IDE->帮助

  4. 项目的主类中的MenuItemCallback方法以打开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);    }
    

最新更新