2012-03-15 4 views
3

MvcBuildViews 요소를 true로 설정하여 MVC 3 프로젝트에서 뷰를 컴파일합니다.빌드 서버에서 뷰 헬퍼를 사용하여 MVC 3 뷰를 컴파일하지 못했습니다.

그러나 이로 인해 빌드 서버에서 빌드가 실패합니다. 나는 가능한 원인에 대한 주변 검색했지만 내 문제는 일반적인 것과 다른 것 같다 :

오류 :이 경우 Element에서

_Layout.cshtml(xx): The name "Element" does not exist in the current context. 중 하나를 호출, 우리는 도우미보기로 만들고있어 참조가 그 행동 양식.

문제는 무엇 일 수 있습니까?

+0

_Layout.cshtml을 보여줄 수 있습니까? –

+0

정말 큰 파일이고 NDA 계약 코드를 실제로 보여줄 수는 없습니다. 그래도 정확히 무엇을 확인하고 싶습니까? 오류가있는 특정 줄은 도우미 호출과 같은 것이 아닙니다. @helper PutElement() {@ Element.Method (param, param, param)} ' – Alpha

답변

5

내 문제의 근본 원인을 발견했습니다. 나는 모든 사람이 내 상황에서 배울 수 있도록 여기에서 업데이트 중입니다.

프로젝트를 계속 진행하기 위해 TFS 빌드 서버가 계속 실패했기 때문에 MVC 프로젝트를 편집하여 서버의 뷰를 컴파일하지 않았지만 dev의 시스템에서만 편집했습니다. 우리는이 모든 것을 가져다가 실제 환경에 빌드 배포하면 그렇게하기 위해 내가

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true' AND '$(BuildingInsideVisualStudio)'=='true'"> 

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> 

변경, 나는 똑같은 오류가 우리의 전개에 튀어 발견 환경. 내가 가서 도우미보기 Element.cshtml이 가정 된 App_Code 폴더에 없다는 것을 알기 위해 찾아 가서 배포 패키지를 살펴 보았습니다.

프로젝트 파일을 다시 열고 해당 파일에 대한 참조를 검색했습니다. 나는 특정 참조, 설정이

<None Include="App_Code\Element.cshtml" /> 

대신 난 그냥 (그런 식있어 몰라하는 방법) 참조가 만들어진 방식을 변경하고 모든

<Content Include="App_Code\Element.cshtml" /> 

의 매력처럼 일 것을 발견 .

이야기의 도덕 : 오류 이라고 말합니다.

이제 우리의 dev 컴퓨터에서 왜 실패하지 않는지 궁금합니다. 아마 빌드 서버에 다른 출력 폴더가 있기 때문에 출력에서 ​​.cshtml 파일을 찾을 수 없기 때문일 것입니다. 어쩌면 그것은 다른 질문에 대한 것이 될 것입니다 ...

관련 문제