【问题标题】:Creating Item Template in Visual Studio 2012 with multiple, non-nested files在 Visual Studio 2012 中使用多个非嵌套文件创建项目模板
【发布时间】:2013-05-17 21:40:23
【问题描述】:

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

任何帮助将不胜感激。我还有其他一切工作,只需要完善最后一点。

【问题讨论】:

    标签: c# templates visual-studio-2012


    【解决方案1】:

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

    【讨论】:

    • 你确定吗? ItemType="EmbeddedResource" 在编译时控制文件的处理,并且对解决方案资源管理器中的嵌套没有我所知道的影响。 This solution 为我工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    相关资源
    最近更新 更多