项目项模板:Visual Studio在哪里指定依赖项?

时间:2010-12-12 18:51:24

标签: c# visual-studio

如此处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>

2 个答案:

答案 0 :(得分:2)

IDE很聪明,可以自行解决这个问题。在示例项目中尝试这个:Project + Add New Item,Class,将其命名为Foo.cs.重复,现在将其命名为Foo.Designer.cs。注意它如何自动成为Foo.cs的子项。该名称的“.Designer”部分很重要。

答案 1 :(得分:1)

对于类似IDE的类型,它会自动将其计算出来。

但是,如果要组合设计人员不知道的文件/为文件使用不同的命名模式,则必须手动添加标签。我在一个项目中尝试过这个并且我认为它不值得付出努力,因为IDE只会自动重命名它知道的相关文件(当你更改主文件的文件名时)。