tafuji's blog

C#, Xamarin, Azure DevOps を中心に書いています。

Xamarin の Visual Studio 項目テンプレート作成上のメモ

はじめに

  • Xamarin.Native の項目テンプレートを作成するときの設定値のメモ
    • Xamarin.Native の項目テンプレートを作成しようとしたきに、通常の C# のテンプレートで作成すると、Xamarin.Android のプロジェクトに新規項目を追加しようとしても、作成したテンプレートが Visual Studio 上で選択できなかった。
    • 調査したところ、.template ファイルで TemplateGroupID を設定することで、Visual Studio 上でテンプレートを選択できるようになった。

予備知識

Visual Studio での項目テンプレートの作成方法(テンプレートの作成、配布用の VSIX プロジェクトの作成など)は、以下サイトなどを参照してください

方法

項目テンプレートの .template ファイルで、TemplateGroupID を設定します 以下に AndroidiOS の設定を記載します

プラットフォーム 設定値
Android MonoAndroid
iOS Xamarin.iOS

以下に、Android 用の項目テンプレートの .template ファイルの例を示します。

<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
  <TemplateData>
    <Name>XamarinItemTemplateSample.Android</Name>
    <Description>XamarinItemTemplateSample.Android</Description>
    <Icon>XamarinItemTemplateSample.Android.ico</Icon>
    <TemplateID>59ba9664-372a-42d9-82a1-e8a49580f757</TemplateID>
    <ProjectType>CSharp</ProjectType>
    <TemplateGroupID>MonoAndroid</TemplateGroupID>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
    <DefaultName>Class.cs</DefaultName>
  </TemplateData>
  <TemplateContent>
    <References>
      <Reference>
        <Assembly>Mono.Android</Assembly>
      </Reference>
    </References>
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">Class.cs</ProjectItem>
  </TemplateContent>
</VSTemplate>

確認

シンプルな VSIX プロジェクトを作成して、Android, iOS 用のテンプレートを作成し、動作確認した結果は以下の通り。

Install-gapps