自定義VS的ItemTemplates 實現任意文件結構


 

上一篇說到重寫IHttpHandler實現前后端分離,這次說一下如何建立一個如下文件結構。

 

VS建立webform時是根據模板來的。C#的模板目錄如下:

F:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplatesCache\CSharp

WebForm的模板目錄如下:

F:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplatesCache\CSharp\Web\Web Forms\2052\WebForm

里面有幾個文件

打開原WebForm.vstemplate可以看到以下代碼:

 1 <VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
 2   <TemplateData>
 3     <Name Package="{39c9c826-8ef8-4079-8c95-428f5b1c323f}" ID="3062"/>
 4     <Description Package="{39c9c826-8ef8-4079-8c95-428f5b1c323f}" ID="3063"/>
 5     <Icon Package="{39c9c826-8ef8-4079-8c95-428f5b1c323f}" ID="4533"/>
 6     <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
 7     <TemplateID>Microsoft.WAP.CSharp.WebForm</TemplateID>
 8     <TemplateGroupID>Web</TemplateGroupID>
 9     <ProjectType>CSharp</ProjectType>
10     <ProjectSubType>Web</ProjectSubType>
11     <ShowByDefault>false</ShowByDefault>
12     <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
13     <DefaultName>WebForm.aspx</DefaultName>
14     <SortOrder>20</SortOrder>
15   </TemplateData>
16   <TemplateContent>
17     <References>
18       <Reference>
19         <Assembly>System.Web</Assembly>
20       </Reference>
21       <Reference>
22         <Assembly>System</Assembly>
23       </Reference>
24       <Reference>
25         <Assembly>System.Data</Assembly>
26       </Reference>
27       <Reference>
28         <Assembly>System.Drawing</Assembly>
29       </Reference>      
30       <Reference>
31         <Assembly>System.Xml</Assembly>
32       </Reference>      
33     </References>
34     <CustomParameters>
35       <CustomParameter Name="$ParentExtension$" Value=".aspx"/>
36       <CustomParameter Name="$ChildExtension$" Value=".cs"/>
37     </CustomParameters>
38     <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.$fileinputextension$">Default.aspx</ProjectItem>
39     <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.$fileinputextension$.cs" SubType="ASPXCodeBehind">Default.aspx.cs</ProjectItem>
40     <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.$fileinputextension$.designer.cs">Default.aspx.designer.cs</ProjectItem>
41   </TemplateContent>
42   <WizardExtension>
43     <Assembly>Microsoft.VisualStudio.Web.Application, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
44     <FullClassName>Microsoft.VisualStudio.Web.Application.WATemplateWizard</FullClassName>
45   </WizardExtension>
46 </VSTemplate>

 

想改成.html嵌套.cs,修改WebForm.vstemplate為:

 1 <VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
 2   <TemplateData>
 3     <Name Package="{39c9c826-8ef8-4079-8c95-428f5b1c323f}" ID="3062"/>
 4     <Description Package="{39c9c826-8ef8-4079-8c95-428f5b1c323f}" ID="3063"/>
 5     <Icon Package="{39c9c826-8ef8-4079-8c95-428f5b1c323f}" ID="4533"/>
 6     <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
 7     <TemplateID>Microsoft.WAP.CSharp.WebForm</TemplateID>
 8     <TemplateGroupID>Web</TemplateGroupID>
 9     <ProjectType>CSharp</ProjectType>
10     <ProjectSubType>Web</ProjectSubType>
11     <ShowByDefault>false</ShowByDefault>
12     <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
13     <DefaultName>WebForm.html</DefaultName>
14     <SortOrder>20</SortOrder>
15   </TemplateData>
16   <TemplateContent>
17     <References>
18       <Reference>
19         <Assembly>System.Web</Assembly>
20       </Reference>
21       <Reference>
22         <Assembly>System</Assembly>
23       </Reference>
24       <Reference>
25         <Assembly>System.Data</Assembly>
26       </Reference>
27       <Reference>
28         <Assembly>System.Drawing</Assembly>
29       </Reference>      
30       <Reference>
31         <Assembly>System.Xml</Assembly>
32       </Reference>      
33     </References>
34     <CustomParameters>
35       <CustomParameter Name="$ParentExtension$" Value=".html"/>
36       <CustomParameter Name="$ChildExtension$" Value=".cs"/>
37     </CustomParameters>
38     <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.html">Default.html</ProjectItem>
39     <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.cs" SubType="ASPXCodeBehind">Default.cs</ProjectItem>
40 
41   </TemplateContent>
42   <WizardExtension>
43     <Assembly>Microsoft.VisualStudio.Web.Application, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
44     <FullClassName>Microsoft.VisualStudio.Web.Application.WATemplateWizard</FullClassName>
45   </WizardExtension>
46 </VSTemplate>

 把里面模板里面關聯文件修改如下:(.html和.cs文件可以更具公司平台做一標准頁面出來。)

如果不是原生WebForm要用服務器控件Default.aspx.designer.cs ,可以刪掉。

改好之后建個文件試試吧

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM