2010-12-30 6 views
4

저는 모노에서 T4 지원을 망설이고 매우 성가신 것을 눈치 챘습니다. T4 템플릿을 실행할 때 현재 디렉토리가 홈 디렉토리입니다. 현재 프로젝트의 디렉토리에서 몇 개의 파일을 읽을 수 있어야하지만 어떻게 해야할지를 놓치고 있습니다. 나는이 문제를 극복하려면 어떻게해야이 T4에서 프로젝트 디렉터리를 가져 오는 방법은 무엇입니까?

/home/earlz/MyProject 

같은 것을 양보 할 위치

<#@ template language="C#v3.5" #> 
<#@ output extension="txt" #> 

<#=System.IO.Directory.GetCurrentDirectory() #> 

/home/earlz 

를 얻을?

또한, 나는 hostspecific 및 Host.ResolvePath을 시도했지만 나는 NotImplementedException 확인

답변

7

을 가지고, 내가 그것을 알아 낸 것 같아요. 실제로 경로를 직접 확인해야합니다. (나를 위해 충분) 템플릿 파일의 디렉토리를 얻으려면 단지이 사용

<#= System.IO.Path.GetDirectoryName(Host.TemplateFile) #> 
+0

그리고 템플릿 hostspecific의 속성을 true로 설정하십시오. – giacomelli

1

나에게 fixed ResolvePath 당신의 older question 후, other improvements의 톤과 함께. 수정본은 MonoDevelop 2.6에 있어야하는데, building from master을 시도해 볼 수 있습니다.

+0

아, 그때 내 문제가 있습니다. 나는 그것이 왜 작동하지 않는지에 관해 혼란스러워했다. 나는 여전히 MonoDevelop 2.4.1 (Arch Linux 사용) 일 가능성이있다. 가장 최신 버전을 얻으려고 스스로 구축하려고한다. – Earlz

+0

Ah dang은 2.6이 실제로 출시되지 않았다는 것을 알기 전에 패키지를 최신으로 표시했다. 아마도 2.6이 나오고 Arch Linux를위한 패키지가 업데이트 될 때까지 모든 것을 고수하게 될 것입니다. – Earlz

관련 문제