4

5 つのファイルを生成する新しい Visual Studio 2012 アイテム テンプレートを作成しようとしています。そのうちの 3 つはネストされ、1 つはネストされていません。次のようになります。

MyView1.View
   MyView1.view.cs
   MyView1.data.cs
   MyView1.gen.cs

MyView1.js

(JavaScript ファイルを分離する必要があるのは、実行時に解析するために動的に抽出する埋め込みリソースとして使用する際の問題によるものです。)

これは、これまでに思いついたテンプレート ファイルです。

<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
<TemplateData>
    <DefaultName>MyView.view</DefaultName>
    <Name>MVC Desktop View - Integration Test</Name>
    <Description>A view in a MVC-based desktop web application for use in integration tests.</Description>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>10</SortOrder>
    <Icon>__TemplateIcon.ico</Icon>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
</TemplateData>
<TemplateContent>
    <ProjectItem TargetFileName="$fileinputname$.view" ReplaceParameters="true">Template.view</ProjectItem>
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$.view.cs" ReplaceParameters="true">Template.view.cs</ProjectItem>
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$.data.cs" ReplaceParameters="true">Template.data.cs</ProjectItem>
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$.gen.cs" ReplaceParameters="true">Template.gen.cs</ProjectItem>
    <ProjectItem TargetFileName="$fileinputname$.js" ReplaceParameters="true" ItemType="Embedded Resource">Template.js</ProjectItem>
</TemplateContent>
<WizardExtension>
    <Assembly>VisualStudio.TemplateWizards, Version=1.1.0.0, Culture=neutral, PublicKeyToken=87390d63f27c23a4</Assembly>
    <FullClassName>VisualStudio.TemplateWizards.ViewItemTemplateWizard</FullClassName>
</WizardExtension>

問題は、JavaScript ファイルが .View ファイルの下にネストされていることです。これを回避する方法が見つからないようです。理想的には、これを単一のアイテム テンプレートとして追加したいと考えています (2 つの個別のアイテム テンプレートを使用する必要はありません)。

どんな助けでも大歓迎です。私は他のすべてを機能させています。この最後の小さな部分を磨く必要があります。

4

1 に答える 1

1

私は最終的にこれを解決しました。ItemType を属性としてファイルに追加する場合、ドロップダウンに示されているように項目タイプの名前を使用できないことが判明しました (この投稿によると: http://social.msdn.microsoft.com/Forums/ en-US/vsx/thread/3f6788cd-634b-42e5-ba63-b6dc52af71f9 )。行を次のように変更すると (Embedded と Resource の間にスペースがありません)、問題が解決します。

<ProjectItem TargetFileName="$fileinputname$.js" ReplaceParameters="true" ItemType="EmbeddedResource">Template.js</ProjectItem>
于 2013-06-14T15:33:26.970 に答える