4

我正在寻找一个新的 Visual Studio 2012 项目模板,它生成五个文件,其中三个是嵌套的,一个不是。它应该如下所示:

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 文件下面,我似乎找不到解决方法。理想情况下,我希望这是添加的单个项目模板(并且不必使用两个单独的项目模板)。

任何帮助将不胜感激。我有其他一切工作,只需要擦亮最后的一小块。

4

1 回答 1

1

我终于解决了这个问题。事实证明,在将 ItemType 作为属性添加到文件时,您不能使用下拉菜单中显示的 Item Type 的名称(根据这篇文章:http ://social.msdn.microsoft.com/Forums/ zh-CN/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 回答