Adam's 주석과 함께 VS Express에서이 작업을 수행 할 수 있지만, 아담이 제안한대로 템플릿에 필요한 변경 사항이 있습니다.
Visual Studio 요구 사항은 활성 프로젝트의 경로를 가져 오는 데 사용되며,이 프로젝트는 web.config 파일과 app_data 경로를 찾는 데 사용됩니다. 이 값은 일반적으로 프로젝트 내에서 알려져 있기 때문에, 우리는 대체 값들 하드 코딩 할 수있는 _Settings.tt 지금처럼 파일
업데이트 :
...
const string ConnectionStringName="Chinook";
//Use this when not building inside visual studio standard or higher
//make sure to include the trailing backslash!
const string ProjectPathDefault="c:\\path\\to\\project\\";
...
public EnvDTE.Project GetCurrentProject() {
if (Host is IServiceProvider)
{
IServiceProvider hostServiceProvider = (IServiceProvider)Host;
if (hostServiceProvider == null)
throw new Exception("Host property returned unexpected value (null)");
EnvDTE.DTE dte = (EnvDTE.DTE)hostServiceProvider.GetService(typeof(EnvDTE.DTE));
if (dte == null)
throw new Exception("Unable to retrieve EnvDTE.DTE");
Array activeSolutionProjects = (Array)dte.ActiveSolutionProjects;
if (activeSolutionProjects == null)
throw new Exception("DTE.ActiveSolutionProjects returned null");
EnvDTE.Project dteProject = (EnvDTE.Project)activeSolutionProjects.GetValue(0);
if (dteProject == null)
throw new Exception("DTE.ActiveSolutionProjects[0] returned null");
return dteProject;
}
return null;
}
...
public string GetConfigPath(){
EnvDTE.Project project = GetCurrentProject();
if (project != null)
{
foreach(EnvDTE.ProjectItem item in project.ProjectItems)
{
// if it is the configuration, then open it up
if(string.Compare(item.Name, "Web.config", true) == 0)
{
System.IO.FileInfo info =
new System.IO.FileInfo(project.FullName);
return info.Directory.FullName + "\\" + item.Name;
}
}
return "";
}
else
{
return ProjectPathDefault+"web.config";
}
}
public string GetDataDirectory(){
EnvDTE.Project project=GetCurrentProject();
if (project != null)
{
return System.IO.Path.GetDirectoryName(project.FileName)+"\\App_Data\\";
}
else
{
return ProjectPathDefault+"App_Data\\";
}
}
...
그런 다음 VS 외부 도구가 T4 도구 (도구를 설정하는 기능을 사용하여 -> 외부 도구) : 설정 이러한 속성 :
- 제목 : T4
- 명령 : C : \ Program 파일 \ 공용 Files \ Microsoft 공유 \ TextTemplating \ 1.2 \ TextTransform.exe
- 인수 : $ (PROJECTDIR) \ 모델 Classes.tt
- 초기 디렉토리 : \ $를 (PROJECTDIR)
- 출력 창을 사용하십시오. 및 프롬프트에 대해을 선택해야합니다.
확인을 클릭 한 다음 도구 -> 외부 도구 메뉴에서 새로 만든 도구를 실행하십시오.
T4 템플릿은 일반 MVC 프로젝트에서 작동합니까? 나는 t4 템플릿이 익스프레스와 함께 설치되지 않을 것이라고 생각하고 있습니까? – jfar