LoginSignup
0
0

More than 5 years have passed since last update.

Visual Studio 2017 用の Xamarin.Forms プロジェクトテンプレートの VSIX を作った話

Posted at

はじめに

この記事は、田淵義人さんが作成した Xamarin 用のプロジェクトテンプレートの VSIX を作成した時の手順メモです。
以下のプロジェクトテンプレートの VSIX を作成しました。

  • XamarinFormsPCLTemplate
    • PCL 版の Xamarin.Forms プロジェクトテンプレート
  • XamarinNativePCLTemplate
    • プロジェクトのコア部分が PCL のクラスライブラリで構成された Xamarin ネイティブのプロジェクトテンプレート

プロジェクトテンプレート用の VSIX の作り方

ここでは、プロジェクトテンプレートを作った時の流れを記載しておきます。

事前準備

VSIX を作成するには、Visual Studio に拡張機能開発用のツールが必要です。インストールされていない場合は、Visual Studio のインストーラーから、拡張機能開発用のツールをインストールしておいてください。

VSInstaller

VSIX プロジェクトを作成する

Visual Studio のプロジェクトの新規作成で、[Extensibility] のツリー内の [VSIX Project] を選択してプロジェクトを作成します。

CreateVSIXProject

プロジェクトテンプレート用のプロジェクトを作成する

Visual Studio のプロジェクトの追加ウィンドウで、[Extensibility] ツリー内の [C# Project Template] を選択します。

CreateProjectTemplateProject

プロジェクト構造

二つのプロジェクトが作成されます。

ProjectStructure

  • VsixProject
    • Visual Studio の拡張機能のインストーラーを作成するためのプロジェクト
  • Template
    • プロジェクトテンプレートのコンテンツを管理するプロジェクト

ビルド時にパスが長すぎてビルドエラーが出る場合があるので、プロジェクト名は短い方がよいです。

テンプレートのコンテンツをプロジェクトに追加する

プロジェクトテンプレートプロジェクトにテンプレートのコンテンツを追加します。

project-structure

せっかくなので、Visual Studio の新規プロジェクト作成ウィンドウで、[Closs-platform] の中にプロジェクトテンプレートが表示されるようにします。
この設定は、ルートとなる vstemplate ファイルのプロパティの設定で行います。プロパティウィンドウの VSTemplateCategory の値に Cross-Platform を設定します。

Category

VSIX プロジェクトのアセットにプロジェクトテンプレート用のプロジェクトを追加する

VSIX プロジェクトの source.extension.vsixmanifest ファイルを開いて、Asset を選択しアセットを新規追加します。

Asset

新規作成ウィンドウで、Type で、Microsoft.VisualStudio.ItemTemplate を選択、SourceA project in current solution を選択、 Project でプロジェクトテンプレートのプロジェクトを選択します。

ProjectTemplate

テンプレートのデバッグ

VSIX プロジェクトをデバッグすると、Visual Studio の拡張機能をデバッグするための Visual Studio が起動します。この環境を利用して作成したテンプレートが正しく動作するかをデバッグすることができます。

ビルドして VSIX ファイルを作成する

VSIX のプロジェクトをビルドするとインストーラーが作成されます。

vsixinstaller

まとめ

Visual Studio の拡張機能を利用すると、プロジェクトテンプレートの作成、デバッグ、インストーラーの作成が比較的簡単にできますので、ぜひトライしてみてください。

謝辞

田淵義人さんが作成した Xamarin 用のプロジェクトテンプレートのおかげで、テンプレートのインストーラーの作成と記事の執筆ができました。
本当にありがとうございます。

参考

今回作成した VSIX は、GitHub に公開しています。

  • XamarinFormsPCLTemplate
    • PCL 版 Xamarin.Forms プロジェクトテンプレート
  • XamarinNativePCLTemplate
    • プロジェクトのコア部分が PCL のクラスライブラリで構成された Xamarin ネイティブのプロジェクトテンプレート
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0