我正在编写VSIX,以分发带有VS2013向导的多项目模板,该向导允许用户为我们的应用程序编写扩展。我在提供用户指南文档时遇到问题,这是一个chm文件和模板。VSIX清单允许我提供"入门指南",但是这些功能的文件支持不包括"CHM"文件。
我们使用RoboHelp来创建CHM,还有一个创建html文件的选项。然而,创建的html文件是分布在多个文件夹中的多个文件(有一个索引页面,它具有指向所有其他html文件的链接)。我不知道如何将这些文件打包到VSIX中。
我在这里没有什么问题;
- 我们是否可以运行任何脚本或批处理文件作为vsix安装
- 是否可以创建一个Windiows Start manu文件夹来显示到chm文件的链接
- 如果我将"入门指南"指向任何内部目录html文件。"扩展和更新"中没有"入门"链接,周围有工作吗
- 我做错了吗?有没有更好的方法来提供模板&帮助
如果我决定部署html帮助;我正在考虑部署入门帮助的压缩副本,其中有许多文件夹和文件,然后在vsix安装过程中提取。否则,我需要将这100多个文件中的每一个标记为"包含在VSIX中"
您可以将.chm(或任何其他文件类型)添加到包项目中,在解决方案资源管理器中选择该文件,显示该文件的"属性"窗口(而不是项目),并将"包含在VSIX中"属性设置为true。
1:您可以在启动扩展时运行任何代码。2:您可以将任何命令添加到"工具"菜单
- 将chm文件作为vsix的一部分,并将其标记为"包含在vsix中"由@Carlos Quintero建议
-
创建一个新的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。提供此信息后,使用按钮"完成"向导假如
-
打开新建项目中的".vsct"文件,查找"IDM_VS_MENU_TOOLS"并将其更改为"IDM_VS _MENU_HELP",将菜单项移动到VS IDE->帮助
-
项目的主类中的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); }