2009-09-03 7 views
1

私は、Visual Studioのソリューションエクスプローラでプロジェクトの右クリックメニューの "Add-> New item"に新しいエントリを追加するテンプレートを持っています。Visual Studio 2008のアイテムテンプレートをファイル依存関係で作成することは可能ですか?

私は既にテンプレートを作成して、それを自分のドキュメントフォルダの下にある私のItemTemplatesディレクトリに配置しました。それはテンプレートを使ってプロジェクトに新しいアイテムを追加できるという意味で機能します。

しかし、テンプレートは、3つのファイルで構成されています

<filename>.controller 
<filename>.Designer.cs 
<filename>.cs 

これらは、同じレベルのプロジェクトに追加されますが、私はあなたがフォームを追加するときに取得階層の同じ種類を持っているしたいのですが.Designer.csファイルが.csファイルの下にあるサブノードとして配置されているプロジェクトに追加します。私はそれが次のようになりたいのに対し、

TestProject 
    +- Properties 
    +- References 
    +- App.config 
    +- Program.cs 
    +- MyTestController.controller 
    +- MyTestController.Designer.cs 
    +- MyTestController.cs 

TestProject 
    +- Properties 
    +- References 
    +- App.config 
    +- Program.cs 
    +- MyTestController.controller 
    +- MyTestController.Designer.cs 
    +- MyTestController.cs 

これが可能である

基本的に、これは、プロジェクトがどのように見えるのですか?もしそうなら、私の.vstemplateファイルで何が変わるのですか?

ここで私は、テンプレートのzipファイルに追加した.vstemplateファイルです:

<ItemGroup> 
    <Compile Include="Controller.controller" /> 
    <Compile Include="Controller.cs"> 
    <DependentUpon>Controller.controller</DependentUpon> 
    </Compile> 
    <Compile Include="Controller.Designer.cs"> 
    <DependentUpon>Controller.controller</DependentUpon> 
    </Compile> 
</ItemGroup> 

および追加:

<VSTemplate Version="2.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"> 
    <TemplateData> 
     <Name>LVK.NET New Controller</Name> 
     <Description>Adds an business logic controller class to the project.</Description> 
     <Icon Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="4522" /> 
     <ProjectType>CSharp</ProjectType> 
     <SortOrder>10</SortOrder> 
     <DefaultName>Controller.controller</DefaultName> 
    </TemplateData> 
    <TemplateContent> 
     <References> 
      <Reference> 
       <Assembly>System</Assembly> 
      </Reference> 
      <Reference> 
       <Assembly>System.Data</Assembly> 
      </Reference> 
      <Reference> 
       <Assembly>System.Xml</Assembly>:\ 
      </Reference> 
      <Reference> 
       <Assembly>LVK.Core</Assembly> 
      </Reference> 
      <Reference> 
       <Assembly>LVK.BusinessLogic</Assembly> 
      </Reference> 
     </References> 
     <ProjectItem ReplaceParameters="true">Controller.controller</ProjectItem> 
     <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.Designer.cs">Controller.Designer.cs</ProjectItem> 
     <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.cs">Controller.cs</ProjectItem> 
    </TemplateContent> 
</VSTemplate> 

答えて

1

(例えば.csproj)projectfileであなたの "hierachy" を指定しますDoneをご.vstemplate

<TemplateContent> 
    <Project TargetFileName="Project1.csproj" File="Project1.csproj" ReplaceParameters="true"> 
     <ProjectItem ReplaceParameters="false" TargetFileName="Controller.controller">Controller.controller</ProjectItem> 
     <ProjectItem ReplaceParameters="true" TargetFileName="Controller.cs">Controller.cs</ProjectItem> 
     <ProjectItem ReplaceParameters="true" TargetFileName="Controller.Designer.cs">Controller.Designer.cs</ProjectItem> 
    </Project> 
    </TemplateContent> 

にプロジェクトファイル;-)

関連する問題