2012-12-10 26 views
8

Visual Studio Itemテンプレートを作成して、 'container'ファイルに依存するいくつかのファイルを作成しています。

最後のファイル<ProjectItem SubType="Code" TargetFileName="$fileinputname$\I$fileinputname$ View.cs" ReplaceParameters="true">Container View.cs</ProjectItem>は、特定のモデルタイプが必要なビューインターフェイスを作成します。 $safeitemname$パラメータが期待通りに機能しませんでした。

出力コンテナView.csファイル:期待

public interface IIMy_Triplet_View : IView<IMy_Triplet_View_Model> 
{ 
} 

public interface IMy_Triplet_View : IView<My_Triplet_Model> 
{ 
} 

これは、コンテナView.csテンプレートのソースです:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using WebFormsMvp; 

namespace $rootnamespace$ 
{ 
    public interface $safeitemname$_View : IView<$safeitemname$_Model> 
    { 
    } 
} 

そして.vstemplateファイル

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item"> 
     <TemplateData> 
     <DefaultName>Model-View-Presenter</DefaultName> 
     <Name>Model-View-Presenter</Name> 
     <Description>Creates a model-view-presenter triplet</Description> 
     <ProjectType>CSharp</ProjectType> 
     <SortOrder>10</SortOrder> 
     <Icon>__TemplateIcon.png</Icon> 
     <PreviewImage>__PreviewImage.png</PreviewImage> 
     </TemplateData> 
     <TemplateContent> 
     <References> 
      <Reference> 
      <Assembly>WebFormsMvp</Assembly> 
      </Reference> 
     </References> 
     <ProjectItem SubType="Code" TargetFileName="$fileinputname$" ReplaceParameters="false">Container</ProjectItem> 
     <ProjectItem SubType="Code" TargetFileName="$fileinputname$\$fileinputname$ Model.cs" ReplaceParameters="true">Container Model.cs</ProjectItem> 
     <ProjectItem SubType="Code" TargetFileName="$fileinputname$\$fileinputname$ Presenter.cs" ReplaceParameters="true">Container Presenter.cs</ProjectItem> 
     <ProjectItem SubType="Code" TargetFileName="$fileinputname$\I$fileinputname$ View.cs" ReplaceParameters="true">Container View.cs</ProjectItem> 
     </TemplateContent> 
    </VSTemplate> 

答えて

14

ソリューションは、ここで見つける:ファイル内の

<VSTemplate Version="3.0.0" ... Type="Item"> 
<TemplateData> 
    ... 
</TemplateData> 
<TemplateContent> 
    ... 
    <CustomParameters> 
    <CustomParameter Name="$basename$" Value="$fileinputname$"/> 
    </CustomParameters> 
</TemplateContent> 
</VSTemplate> 

と使用$ベース名$:http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/8516524a-22d3-4ed2-b2da-aaafe855fb92/

CustomParameter(TemplateContent下の最後の項目)を追加します。 $ fileinputname $の代わりに。

関連する問題