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

任意のアイデア?

アップデート:この依存関係は、プロジェクトタイプのテンプレートのどこかに指定されていませんでしたか?これは、.Designer.csだけを認識することができ、たとえば.MyCustom.csではなく、IDEヒューリスティックルールに依存するよりもはるかに賢明です。

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

+0

うん、だけでなく私には面白そうだった。しかし、私は私が持っている(かなり頻繁にファイルの名前を変更をやってんですよ私はクラス名をリファクタリングするたびにプロジェクトをアンロードし、参照を変更してからプロジェクトをロードしなければなりませんでした。それはすぐにきれいなファイルツリーを取得するためにはあまりにも多くの作業になりました。 – Stefan

2

IDE自体がこれを理解するのに十分なスマートです。サンプルプロジェクトでこれを試してください:Project + Add New Item、Class、それはFoo.cs.という名前です。繰り返し、今度はFoo.Designer.csという名前を付けます。それが自動的にFoo.cのサブ項目になる方法に注意してください。名前の "デザイナー"の部分は重要です。

+0

私は.mycustom.csをしたい場合は?私がIDEに頼ることができれば、私は立ち往生しています。プロジェクトタイプのテンプレートなどで指定する方法はありますか? – user310291

+0

私がこれまでに見つかっているが、それは – Stefan