2013-03-19 2 views
0

MVC 4 초보 프로젝트 용 프로젝트 템플릿을 만듭니다.Visual Studio 프로젝트 템플릿보기 (.cshtml) 파일에서 와일드 카드가 무시됩니다.

정상적인 클래스 기반 코드 파일에서 Visual Studio에 대해 다음과 같은 구문을 작성하여 $safeprojectname$ 와일드 카드에 새 프로젝트를 만들 때 원래 사용자가 지정한 프로젝트 이름을 입력 할 수 있습니다.

namespace $safeprojectname$.Models 
{ 
    public class Class1 
    {  
     public bool blah { get; set; } 
    } 
} 

그러나 모든보기 파일 (* .cshtml)에 대해 이러한 템플릿 와일드 카드는 평가되지 않습니다. 따라서 대체되는 대신 와일드 카드 원시 텍스트가 마크 업에 지속되어 프로젝트를 실행할 때 전 처리기 로직을 ​​폭파시킵니다.

보기 파일 코드의 예입니다.

@model $safeprojectname$.Models.NavigationBarModel 

어떤 해결책이 있습니까?

답변

0

나는 결국 이것을 다른 몇 가지 잡화와 함께 알아 냈습니다.

생성 된 .vstemplate 파일은 내 보낸 템플릿에 포함 된 각 리소스에 대해 <ProjectItem> 요소를 만듭니다.

ReplaceParameters 속성을보기 위해 기본적으로 true로 설정해야합니다. 기본값은 false로 설정되어 있습니다.

<Folder Name="Shared" TargetFolderName="Shared"> 
    <ProjectItem ReplaceParameters="true" TargetFileName="_Layout.cshtml">_Layout.cshtml</ProjectItem> 
    <ProjectItem ReplaceParameters="true" TargetFileName="_LoginPartial.cshtml">_LoginPartial.cshtml</ProjectItem> 
    <ProjectItem ReplaceParameters="true" TargetFileName="_NavigationBar.cshtml">_NavigationBar.cshtml</ProjectItem> 
    <ProjectItem ReplaceParameters="true" TargetFileName="Error.cshtml">Error.cshtml</ProjectItem> 
</Folder>