使用ItemTemplate

时间:2016-09-17 12:33:47

标签: c# asp.net visual-studio-2015 projects-and-solutions

我正在尝试创建一个Visual Studio ItemTemplate,这样每当我们在Web应用程序项目中添加aspx文件时,还应该添加一个文本文件以及aspx作为子文件-文件。我成功地创建了ItemTemplate。当我们使用该自定义aspx添加新的ItemTemplate文件时,它也会添加txt文件,但它不会显示为aspx文件的子项。< / p>

enter image description here

正如您所看到的WebForm1.aspx.txt此文件未显示为WebForm1.aspx文件的子项目,这意味着如果您删除WebForm1.aspx,该文件将显示为独立项目文件,它不会删除txt文件。

这是vstemplate文件,

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>WebForm.aspx</DefaultName>
    <Name>WebForm with Text File</Name>
    <Description>&lt;No description available&gt;</Description>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>10</SortOrder>
    <Icon>__TemplateIcon.ico</Icon>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem SubType="" TargetFileName="$fileinputname$.aspx" ReplaceParameters="true">WebForm1.aspx</ProjectItem>
    <ProjectItem SubType="ASPXCodeBehind" TargetFileName="$fileinputname$.aspx.cs" ReplaceParameters="true">WebForm1.aspx.cs</ProjectItem>
    <ProjectItem SubType="" TargetFileName="$fileinputname$.aspx.designer.cs" ReplaceParameters="true">WebForm1.aspx.designer.cs</ProjectItem>
    <ProjectItem SubType="" TargetFileName="$fileinputname$.aspx.txt" ReplaceParameters="true">WebForm1.aspx.txt</ProjectItem>
  </TemplateContent>
</VSTemplate>

1 个答案:

答案 0 :(得分:0)

好的答案似乎很简单,这question实际上帮助了我。

我们只需要在TargetFileName属性

中的子文件名之前添加实际文件名

E.g。 TargetFileName="$fileinputname$.aspx\$fileinputname$.aspx.txt"

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>WebForm.aspx</DefaultName>
    <Name>WebForm with Text File</Name>
    <Description>&lt;No description available&gt;</Description>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>10</SortOrder>
    <Icon>__TemplateIcon.ico</Icon>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem SubType="" TargetFileName="$fileinputname$.aspx" ReplaceParameters="true">WebForm1.aspx</ProjectItem>
    <ProjectItem SubType="ASPXCodeBehind" TargetFileName="$fileinputname$.aspx.cs" ReplaceParameters="true">WebForm1.aspx.cs</ProjectItem>
    <ProjectItem SubType="" TargetFileName="$fileinputname$.aspx.designer.cs" ReplaceParameters="true">WebForm1.aspx.designer.cs</ProjectItem>
    <ProjectItem SubType="" TargetFileName="$fileinputname$.aspx\$fileinputname$.aspx.txt" ReplaceParameters="true">WebForm1.aspx.txt</ProjectItem>
  </TemplateContent>
</VSTemplate>