1

Visual Studio 2012 の "Export Template..." を使用して、自分用に単一ファイルの C# 項目テンプレートをいくつか作成しました。ZIP ファイルが [My Exported Templates] に表示されるので、それらを Templates ディレクトリに移動できます。その後、C# コンソール アプリケーションを作成すると、テンプレートが問題なく表示されます。

ただし、これは Windows ストア アプリケーション用です。そして、Windowsストアアプリケーションに追加するためにこれらの人を作成しました. ただし、VS2012 の [項目の追加] ダイアログ ボックスでは、そこにそれらが表示されません。VS2012 が生成した XML に何か問題があると推測しています。誰でも知っていますか?

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>KonaViewModelWithBack.cs</DefaultName>
    <Name>KonaViewModelWithBack</Name>
    <Description>&lt;No description available&gt;</Description>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>10</SortOrder>
    <Icon>__TemplateIcon.ico</Icon>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">ConnectToRTMViewModel.cs</ProjectItem>
  </TemplateContent>
</VSTemplate>
4

1 に答える 1

2

VS2012 クラス ファイルで XML 要素を探し回った後、TemplateIDを見つけました。そこを見ると、それが TemplateGroupID を参照していることに気付くでしょう。

WinRT ベースのアプリの TempmlateGroupIDs(VsTemplate) を見ると (レジストリの場所を参照してください)、「WinRT-Managed」がリストされていることがわかります。テンプレート ファイルを変更して TemplateGroupID セットを追加すると、VS2012 はそれを正しく検出します。

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>KonaViewModel.cs</DefaultName>
    <Name>Kona View Model With Back Button</Name>
    <Description>A Kona based View Model which implements a go back button ICommand</Description>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>10</SortOrder>
    <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
    <Icon>__TemplateIcon.ico</Icon>
    <TemplateGroupID>WinRT-Managed</TemplateGroupID>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">ConnectToRTMViewModel.cs</ProjectItem>
  </TemplateContent>
</VSTemplate>

ところで、TemplateID msdn ページのドキュメントは正しくありません。少なくとも、VS2012 Pro を最新にインストールした私の Win8 Pro ではそうです。そこに表示されるレジストリ情報は、実際には LOCAL_MACHINE ハイブではなく、DEFAULT ユーザー ハイブに表示されます)。

于 2013-02-27T06:21:26.743 に答える