チュートリアル - 最初の拡張機能を作成する: Hello World

この Hello World の例では、Visual Studio の初めての拡張機能を作成する方法について説明します。 このチュートリアルでは、Visual Studio に新しいコマンドを追加する方法を示します。

このプロセスでは、次の方法を学習します。

この例では、Visual C# を使用して、次のような "Say Hello World!" という名前のカスタム メニュー ボタンを追加します。

Screenshot showing a custom menu command.

Note

この記事は、Windows 上の Visual Studio に適用されます。 Visual Studio for Mac については、Visual Studio for Mac での拡張機能のチュートリアルのページを参照してください。

前提条件

開始する前に、VSIX テンプレートとサンプル コードを 含む Visual Studio 拡張機能開発 ワークロードがインストールされていることを確認してください。

Note

Visual Studio の任意のエディション (Community、Professional、または Enterprise) を使用して、Visual Studio の機能拡張プロジェクトを作成できます。

機能拡張プロジェクトを作成する

  1. [ファイル] メニューで [新規作成]>[プロジェクト] の順に選択します。 "vsix" を検索し、C# VSIX プロジェクトを選択し、[次へ] を選択します

  2. [プロジェクト名] に「HelloWorld」と入力し、[作成] を選択します。

Screenshot showing creating a new VSIX project.

これで、HelloWorld プロジェクトがソリューション エクスプローラーに表示されます。

カスタム コマンドを追加する

  1. マニフェスト ファイルを .vsixmanifest 選択すると、説明、作成者、バージョンなど、変更可能なオプションを確認できます。

  2. (ソリューションではなく) プロジェクトを右クリックします。 コンテキスト メニューで、[追加][新しい項目] の順に選択します。

  3. [機能拡張] セクションを選択し、[コマンド] を選択します。

  4. 下部にある [名前] フィールドに「Command.cs」などのファイル名を入力します。

Screenshot showing creating a custom command.

新しいコマンド ファイルがソリューション エクスプローラーに表示されます。 [リソース] ノードの下には、コマンドに関連する他のファイルがあります。 たとえば、画像を変更する場合は、PNG ファイルはここに表示されます。

ソース コードの修正

この時点で、コマンドとボタンのテキストは自動生成され、興味深いものではありません。 変更する場合は、VSCT ファイルと CS ファイルを変更できます。

  • VSCT ファイルを使用すると、コマンドの名前を変更し、Visual Studio コマンド システムでのコマンドの実行場所を定義できます。 VSCT ファイルを調べる際に、VSCT コード コントロールの各セクションについて説明するコメントに注目してください。

  • CS ファイルを使用すると、クリック ハンドラーなどのアクションを定義することができます。

  1. ソリューション エクスプローラー、拡張子 VSPackage の VSCT ファイルを見つけます。 この場合、HelloWorldPackage.vsct と呼ばれます

  2. ButtonText パラメーターを Say Hello World! に変更します。

      ...
      <Button guid="guidCommandPackageCmdSet" id="CommandId" priority="0x0100" type="Button">
        <Parent guid="guidCommandPackageCmdSet" id="MyMenuGroup" />
        <Icon guid="guidImages" id="bmpPic1" />
        <Strings>
            <ButtonText>Say Hello World!</ButtonText>
        </Strings>
      </Button>
      ...
    
  3. ソリューション エクスプローラーに戻り、Command.cs ファイルを見つけます。 Execute メソッドで、文字列 messagestring.Format(..) から Hello World! に変更します。

      ...
      private void Execute(object sender, EventArgs e)
      {
        ThreadHelper.ThrowIfNotOnUIThread();
        string message = "Hello World!";
        string title = "Command";
    
        // Show a message box to prove we were here
        VsShellUtilities.ShowMessageBox(
            this.ServiceProvider,
            message,
            title,
            OLEMSGICON.OLEMSGICON_INFO,
            OLEMSGBUTTON.OLEMSGBUTTON_OK,
            OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);
      }
      ...
    

必ず各ファイルへの変更を保存してください。

実行します

これで、Visual Studio の実験的なインスタンスでソース コードを実行できるようになりました。

ステップ 1. F5 キーを押して、[デバッグの開始] コマンドを実行します。 このコマンドによって、プロジェクトがビルドされ、デバッガーが開始され、実験的なインスタンスと呼ばれる Visual Studio の新しいインスタンスが起動されます。

ステップ 2. [実験的なインスタンス][ツール] メニューで、[Say Hello World!] をクリックします。

Screenshot showing that the custom command displays a message box.

新しいカスタム コマンド (この場合は、Hello World! メッセージを表示する画面の中央にダイアログ) からの出力が表示されます。

次のステップ

ここでは、Visual Studio 機能拡張での作業の基本について説明しました。以下を参照すると、さらに詳細を学習できます。