如此处所述http://davidhayden.com/blog/dave/archive/2005/11/05/2556.aspx可以自定义项目项模板。
但目前我只是尝试了解它是如何工作的。例如,我解压缩了 usercontrol 文件,在 usercontrol.vstemplate 中,我看不到 mycontrol.designer.cs 如何依赖于 mycontrol.cs,因为这在项目文件中显示为:
<DependentUpon>mycontrol.cs</DependentUpon>
有什么想法吗?
更新:此依赖项是否未在项目类型模板中指定?这比依赖 IDE 启发式规则更聪明,IDE 启发式规则相当有限,因为它只能识别 .Designer.cs,而不能识别 .MyCustom.cs。
用户控制.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>
最佳答案
IDE 足够聪明,可以自己解决这个问题。在示例项目中尝试一下:项目 + 添加新项目、类,将其命名为 Foo.cs。重复,现在将其命名为 Foo.Designer.cs。请注意它如何自动成为 Foo.cs 的子项。名称中的“.Designer”部分很重要。
关于c# - 项目项模板 : where does Visual Studio specify dependencies?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4423348/