2009-09-03 75 views
1

我有一個模板,它在Visual Studio的解決方案資源管理器中的項目上的「Add-> New item」右鍵菜單中添加一個新條目。爲文件相關性創建Visual Studio 2008的項目模板有可能嗎?

我已經建立了模板,將它放到我的文檔文件夾下的ItemTemplates目錄中,它的工作原理是,我可以通過模板向項目添加新項目。

但是,模板由3個文件:

<filename>.controller 
<filename>.Designer.cs 
<filename>.cs 

這些被添加到項目在同一水平,但我想有同樣的層次你當你添加一個窗體到.Designer.cs文件作爲.cs文件下的子節點放置的項目。

基本上,這是該項目的樣子:

TestProject 
    +- Properties 
    +- References 
    +- App.config 
    +- Program.cs 
    +- MyTestController.controller 
    +- MyTestController.Designer.cs 
    +- MyTestController.cs 

,而我希望它看起來像這樣:

TestProject 
    +- Properties 
    +- References 
    +- App.config 
    +- Program.cs 
    +- MyTestController.controller 
    +- MyTestController.Designer.cs 
    +- MyTestController.cs 

這可能嗎?如果是這樣,我在.vstemplate文件中更改以獲取此行爲?

這裏的.vstemplate文件我已經添加到模板zip文件:在project文件

<VSTemplate Version="2.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"> 
    <TemplateData> 
     <Name>LVK.NET New Controller</Name> 
     <Description>Adds an business logic controller class to the project.</Description> 
     <Icon Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="4522" /> 
     <ProjectType>CSharp</ProjectType> 
     <SortOrder>10</SortOrder> 
     <DefaultName>Controller.controller</DefaultName> 
    </TemplateData> 
    <TemplateContent> 
     <References> 
      <Reference> 
       <Assembly>System</Assembly> 
      </Reference> 
      <Reference> 
       <Assembly>System.Data</Assembly> 
      </Reference> 
      <Reference> 
       <Assembly>System.Xml</Assembly>:\ 
      </Reference> 
      <Reference> 
       <Assembly>LVK.Core</Assembly> 
      </Reference> 
      <Reference> 
       <Assembly>LVK.BusinessLogic</Assembly> 
      </Reference> 
     </References> 
     <ProjectItem ReplaceParameters="true">Controller.controller</ProjectItem> 
     <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.Designer.cs">Controller.Designer.cs</ProjectItem> 
     <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.cs">Controller.cs</ProjectItem> 
    </TemplateContent> 
</VSTemplate> 

回答

1

指定你的 「層次結構」(例如.csproj的):

<ItemGroup> 
    <Compile Include="Controller.controller" /> 
    <Compile Include="Controller.cs"> 
    <DependentUpon>Controller.controller</DependentUpon> 
    </Compile> 
    <Compile Include="Controller.Designer.cs"> 
    <DependentUpon>Controller.controller</DependentUpon> 
    </Compile> 
</ItemGroup> 

,並添加項目文件到您的.vstemplate

<TemplateContent> 
    <Project TargetFileName="Project1.csproj" File="Project1.csproj" ReplaceParameters="true"> 
     <ProjectItem ReplaceParameters="false" TargetFileName="Controller.controller">Controller.controller</ProjectItem> 
     <ProjectItem ReplaceParameters="true" TargetFileName="Controller.cs">Controller.cs</ProjectItem> 
     <ProjectItem ReplaceParameters="true" TargetFileName="Controller.Designer.cs">Controller.Designer.cs</ProjectItem> 
    </Project> 
    </TemplateContent> 

完成;-)

相關問題