はじめに
この記事は、田淵義人さんが作成した Xamarin 用のプロジェクトテンプレートの VSIX を作成した時の手順メモです。
以下のプロジェクトテンプレートの VSIX を作成しました。
-
XamarinFormsPCLTemplate
- PCL 版の Xamarin.Forms プロジェクトテンプレート
-
XamarinNativePCLTemplate
- プロジェクトのコア部分が PCL のクラスライブラリで構成された Xamarin ネイティブのプロジェクトテンプレート
プロジェクトテンプレート用の VSIX の作り方
ここでは、プロジェクトテンプレートを作った時の流れを記載しておきます。
事前準備
VSIX を作成するには、Visual Studio に拡張機能開発用のツールが必要です。インストールされていない場合は、Visual Studio のインストーラーから、拡張機能開発用のツールをインストールしておいてください。
VSIX プロジェクトを作成する
Visual Studio のプロジェクトの新規作成で、[Extensibility] のツリー内の [VSIX Project] を選択してプロジェクトを作成します。
プロジェクトテンプレート用のプロジェクトを作成する
Visual Studio のプロジェクトの追加ウィンドウで、[Extensibility] ツリー内の [C# Project Template] を選択します。
プロジェクト構造
二つのプロジェクトが作成されます。
- VsixProject
- Visual Studio の拡張機能のインストーラーを作成するためのプロジェクト
- Template
- プロジェクトテンプレートのコンテンツを管理するプロジェクト
ビルド時にパスが長すぎてビルドエラーが出る場合があるので、プロジェクト名は短い方がよいです。
テンプレートのコンテンツをプロジェクトに追加する
プロジェクトテンプレートプロジェクトにテンプレートのコンテンツを追加します。
せっかくなので、Visual Studio の新規プロジェクト作成ウィンドウで、[Closs-platform] の中にプロジェクトテンプレートが表示されるようにします。
この設定は、ルートとなる vstemplate
ファイルのプロパティの設定で行います。プロパティウィンドウの VSTemplate
で Category
の値に Cross-Platform
を設定します。
VSIX プロジェクトのアセットにプロジェクトテンプレート用のプロジェクトを追加する
VSIX プロジェクトの source.extension.vsixmanifest
ファイルを開いて、Asset
を選択しアセットを新規追加します。
新規作成ウィンドウで、Type
で、Microsoft.VisualStudio.ItemTemplate
を選択、Source
で A project in current solution
を選択、 Project
でプロジェクトテンプレートのプロジェクトを選択します。
テンプレートのデバッグ
VSIX プロジェクトをデバッグすると、Visual Studio の拡張機能をデバッグするための Visual Studio が起動します。この環境を利用して作成したテンプレートが正しく動作するかをデバッグすることができます。
ビルドして VSIX ファイルを作成する
VSIX のプロジェクトをビルドするとインストーラーが作成されます。
まとめ
Visual Studio の拡張機能を利用すると、プロジェクトテンプレートの作成、デバッグ、インストーラーの作成が比較的簡単にできますので、ぜひトライしてみてください。
謝辞
田淵義人さんが作成した Xamarin 用のプロジェクトテンプレートのおかげで、テンプレートのインストーラーの作成と記事の執筆ができました。
本当にありがとうございます。
参考
今回作成した VSIX は、GitHub に公開しています。
-
XamarinFormsPCLTemplate
- PCL 版 Xamarin.Forms プロジェクトテンプレート
-
XamarinNativePCLTemplate
- プロジェクトのコア部分が PCL のクラスライブラリで構成された Xamarin ネイティブのプロジェクトテンプレート