次の方法で共有


拡張機能の作成

拡張機能は C# で記述されます。 拡張機能の記述を始める最も速い方法は、コマンド パレット自体から行う方法です。 [新しい拡張機能の作成] コマンドを実行し、フィールドに入力してテンプレート プロジェクトを設定するだけで、開始する準備が整います。

新しい拡張機能を作成する

フォームには、次の情報が求められます。

  • ExtensionName: 拡張機能の名前。 これは、プロジェクトの名前と、コマンドを実装するクラスの名前として使用されます。 有効な C# クラス名であることを確認します。スペースや特殊文字を含めず、大文字で始める必要があります。 ドキュメント内で<ExtensionName>として参照されます。
  • 拡張機能の表示名: コマンド パレットに表示される拡張機能の名前。 これは、人間が判読できる名前にすることができます。
  • 出力パス: プロジェクトが作成されるフォルダー。
    • プロジェクトは、指定したパスのサブディレクトリに作成されます。
    • このパスが存在しない場合は、自動的に作成されます。

Windows コマンド パレットの [新しい拡張機能の作成] ページ

フォームを送信すると、コマンド パレットによってプロジェクトが自動的に生成されます。 この時点で、プロジェクト構造は次のようになります。

<ExtensionName>/
│   Directory.Build.props
│   Directory.Packages.props
│   nuget.config
│   <ExtensionName>.sln
└───<ExtensionName>
    │   app.manifest
    │   Package.appxmanifest
    │   Program.cs
    │   <ExtensionName>.cs
    │   <ExtensionName>.csproj
    │   <ExtensionName>CommandsProvider.cs
    ├───Assets
    │   <A bunch of placeholder images>
    ├───Pages
    │   <ExtensionName>Page.cs
    └───Properties
        │   launchSettings.json
        └───PublishProfiles
                win-arm64.pubxml
                win-x64.pubxml

( <ExtensionName> 指定した名前に置き換えられます)

ここから、プロジェクトをすぐにビルドして実行できます。 パッケージがデプロイされて実行されると、コマンド パレットによって拡張機能が自動的に検出され、パレットに読み込まれます。

ヒント

必ずアプリを デプロイ してください。 アプリケーションを ビルドするだけでは、パッケージをデプロイするのと同じ方法で更新されることはありません。

警告

Visual Studio から "<ExtensionName> (Unpackaged)" を実行すると、アプリ パッケージは デプロイ されません。

ソース管理に git を使用していて、C# の標準 .gitignore ファイルを使用している場合は、 .gitignore ファイルから次の 2 行を削除します。

**/Properties/launchSettings.json
*.pubxml

これらのファイルは、アプリをパッケージとしてデプロイするために WinAppSdk によって使用されます。 そうしないと、リポジトリを複製したユーザーは拡張機能をデプロイできなくなります。

コマンドの一覧の末尾にあるコマンド パレットに拡張機能が表示されます。 そのコマンドを入力すると、コマンドのページが表示され、 TODO: Implement your extension hereという 1 つのコマンドが表示されます。

コマンド パレットで実行されている空の拡張機能テンプレートのスクリーンショット

おめでとうございます! 初めての拡張機能を作成しました。 次に、いくつかのコマンドを実際に追加してみましょう。

拡張機能に変更を加えた場合は、プロジェクトをリビルドして、もう一度デプロイできます。 コマンド パレットでは、Visual Studio を使用して再実行されたパッケージに対する変更は認識 されないため 、"Reload" コマンドを手動で実行して、コマンド パレットで拡張機能の再インスタンス化を強制する必要があります。

再読み込みのスクリーンショット

次へ: 拡張機能にコマンドを追加する