1

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

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

我这里有几个问题;

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

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

4

3 回答 3

2

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

于 2015-04-07T21:01:52.460 回答
0
  1. 按照@Carlos Quintero 的建议,将 chm 文件作为 vsix 的一部分并将其标记为“包含在 VSIX 中”
  2. 创建一个新的 Visual Studio 包项目(使用模板 -> Visual C# -> 可扩展性 -> Visual Studio 包),以便在 VS IDE“帮助”菜单下为我们的 sdk 帮助添加一个新菜单项。将显示 Visual Studio 包向导

    第1页)欢迎页面

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

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

    Page 4) 选择 V​​SPackage Options:选择 Menu Command 复选框,此菜单项将添加到 VS IDE -> Tools

    Page5) 命令选项:提供菜单、名称和 ID 的信息。提供此信息后,使用提供的按钮“完成”向导。

  3. 在新创建的项目中打开“.vsct”文件并查找“IDM_VS_MENU_TOOLS”并将其更改为“IDM_VS_MENU_HELP”将菜单项移动到VS IDE -> Help

  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);    }
    
于 2015-04-17T14:20:53.120 回答
0

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

于 2015-04-07T15:40:44.877 回答