2013-05-17 18 views
4

我正在創建一個新的Visual Studio 2012項目模板,該模板生成五個文件,其中三個嵌套,一個不是。它應該是這樣的:在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文件下面,我似乎無法到找到解決辦法。理想情況下,我希望這是添加的單個項目模板(而不必使用兩個單獨的項目模板)。

任何幫助將不勝感激。我有一切工作,只需要拋光這最後一塊。

回答

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> 
+0

Are you sure? ItemType =「EmbeddedResource」在編譯時控制文件的處理,並且不會影響我在解決方案資源管理器中嵌套的知識。 [此解決方案](http://stackoverflow.com/questions/12884732/nested-files-in-item-template)爲我工作。 – bbsimonbb

相關問題