如此处http://davidhayden.com/blog/dave/archive/2005/11/05/2556.aspx所述,可以自定义项目项模板。
但此刻我只想了解它是如何运作的。例如,我解压缩了usercontrol文件,在usercontrol.vstemplate中,我无法看到mycontrol.designer.cs如何依赖于mycontrol.cs,因为它在项目文件中显示为:
<DependentUpon>mycontrol.cs</DependentUpon>
所以任何想法?
更新:这个依赖项是否可以在项目类型模板中的某处未指定?这比依赖IDE启发式规则更加聪明,因为它只能识别.Designer.cs而不是例如.MyCustom.cs。
usercontrol.vstemplate:
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2295" />
<Description Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2296" />
<Icon Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="4532" />
<TemplateID>Microsoft.CSharp.WindowsFormsUserControl</TemplateID>
<ProjectType>CSharp</ProjectType>
<SortOrder>94</SortOrder>
<RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
<NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
<DefaultName>UserControl.cs</DefaultName>
</TemplateData>
<TemplateContent>
<References>
<Reference>
<Assembly>System</Assembly>
</Reference>
<Reference>
<Assembly>System.Data</Assembly>
</Reference>
<Reference>
<Assembly>System.Drawing</Assembly>
</Reference>
<Reference>
<Assembly>System.Windows.Forms</Assembly>
</Reference>
<Reference>
<Assembly>System.Xml</Assembly>
</Reference>
</References>
<ProjectItem ReplaceParameters="true" SubType="UserControl">UserControl.cs</ProjectItem>
<ProjectItem ReplaceParameters="true">UserControl.Designer.cs</ProjectItem>
</TemplateContent>
</VSTemplate>
答案 0 :(得分:2)
IDE很聪明,可以自行解决这个问题。在示例项目中尝试这个:Project + Add New Item,Class,将其命名为Foo.cs.重复,现在将其命名为Foo.Designer.cs。注意它如何自动成为Foo.cs的子项。该名称的“.Designer”部分很重要。
答案 1 :(得分:1)
对于类似IDE的类型,它会自动将其计算出来。
但是,如果要组合设计人员不知道的文件/为文件使用不同的命名模式,则必须手动添加标签。我在一个项目中尝试过这个并且我认为它不值得付出努力,因为IDE只会自动重命名它知道的相关文件(当你更改主文件的文件名时)。