1

VS 2013 のウィザードを使用してマルチプロジェクト テンプレートを配布する VSIX を作成しています。これにより、ユーザーはアプリケーションの拡張機能を作成できます。テンプレートと一緒に chm ファイルであるユーザー ガイド ドキュメントを提供する際に問題があります。VSIX マニフェストを使用すると、「入門ガイド」を提供できますが、これらの機能によるファイル サポートには「CHM」ファイルは含まれません。

RoboHelp を使用して CHM を作成します。html ファイルを作成するオプションもあります。ただし、作成された html ファイルは、複数のフォルダーに分散された複数のファイルです (他のすべての html ファイルへのリンクがあるインデックス ページがあります)。これらのファイルを VSIX にパッケージ化する方法がわかりません。

ここでいくつか質問があります。

  1. vsix インストールの一部としてスクリプトまたはバッチ ファイルを実行することはできますか?
  2. chm ファイルへのリンクを表示するために Windows の Start manu フォルダーを作成することは可能ですか?
  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) プログラミング言語の選択: プログラミング言語とアセンブリに署名する方法を選択できます。

    ページ 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);    }
    
于 2015-04-17T14:20:53.120 に答える
0

1: 拡張機能の起動時に任意のコードを実行できます。2: [ツール] メニューに任意のコマンドを追加できます

于 2015-04-07T15:40:44.877 に答える