2010-12-12 70 views
2

如此处所述http://davidhayden.com/blog/dave/archive/2005/11/05/2556.aspx可以自定义项目项目模板。项目项目模板:Visual Studio在哪里指定了依赖关系?

但目前我只是试图了解它是如何工作的。比如我解压的用户控件文件,并在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> 

回答

1

对于像IDE那样知道的类型的窗口,它会自动计算出来。

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

+0

手动添加标签,目前正是我正在做的:( – user310291 2010-12-13 23:48:21

+0

是的,对我来说似乎也很有趣,但我经常重命名文件(我有每个文件一个类并保持名称相同)我必须卸载项目,更改引用,然后在每次重构类名时加载项目,为了获得更漂亮的文件树,它很快就变得非常繁琐。 – Stefan 2010-12-14 01:54:38

2

的IDE是足够聪明,本身摸不着头脑。在示例项目中试试这个:Project + Add New Item,Class,将其命名为Foo.cs.重复,现在将其命名为Foo.Designer.cs。请注意它如何自动成为Foo.c的子项目。名称中的“.Designer”部分很重要。

+0

如果我想.mycustom.cs怎么办?如果我只能依靠IDE,我会陷入困境。有什么方法可以指定项目类型模板或其他任何东西? – user310291 2010-12-13 23:53:03

+0

不是我迄今为止发现的,但它可能是其中一个未公开的功能 – Stefan 2010-12-14 01:55:27