我有一个模板,可以在Visual Studio的解决方案资源管理器中的项目的“添加 - >新项”右键单击菜单中添加一个新条目。
我已经构建了模板,将其放入我的文档文件夹下的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文件中更改了什么才能获得此行为?
这是我添加到模板zip文件中的.vstemplate文件:
<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>
答案 0 :(得分: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>
完成; - )
答案 1 :(得分:0)
从属文件需要这样引用“父”文件:
<ProjectItem ReplaceParameters="true">Controller.controller</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Controller.controller\$fileinputname$.Designer.cs">Controller.Designer.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Controller.controller\$fileinputname$.cs">Controller.cs</ProjectItem>