2010-12-12 89 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