2011-03-09 4 views
2

첫 번째 TFS 빌드를 완료하려고합니다. 그러나 내가 큐를 ​​컴파일하면 컴파일과 같은 오류가 많이 발생합니다. "네임 스페이스 'System.Web'에 형식 또는 네임 스페이스 이름 'Mvc'가 없습니다 (어셈블리 참조가 누락 되었습니까?)"TFS를 만들 수 없습니다. "형식 또는 네임 스페이스 이름 'Mvc'네임 스페이스 'System.Web'에 존재하지 않습니다."

어떻게 수정합니까?

+2

글쎄, System.Web.Mvc dll에 대한 참조가 있습니까? – Brandon

+2

빌드 머신에 올바른 ASP.NET MVC가 설치되어 있습니까? – Richard

+0

여기에서 MVC 프레임 워크를 다운로드 했으므로 찾을 수있는 유일한 링크였습니다. 그러나 .NET Framework 4.0을 사용하고 있는데이 MVC 프레임 워크가 필요하다는 인상을받지 못했습니다. – arame3333

답변

4

TFS 빌드 컴퓨터에 Visual Studio와 ASP.NET MVC를 설치하십시오. 당신은 내가 2.0 및 3.0 당신에게 링크를주지 이는 MVC 프레임 워크의 버전 당신이 그렇게 사용하고 언급하지 않았다 :

은에 적절한적인 버전을 설치하여 시스템을 빌드하고 System.Web.Mvc에 대한 누락 된 참조와 관련된 오류를 해결해야합니다.

+0

Visual Studio Express로 충분합니까? 아니면 개발시 사용하는 것과 동일한 버전을 사용해야합니까? – arame3333

+0

결국 양쪽 모두 시도했지만 여전히 동일한 오류 메시지가 나타납니다. – arame3333

+0

MVC 프레임 워크는 Visual Studio에 포함되어 있지 않습니다. 그것은 별도의 다운로드입니다. 웹 플랫폼 설치 프로그램을 사용하여 가져올 수 있습니다. 귀하의 편의를 위해 답변에 대한 링크를 추가하겠습니다. –

2

Build 컴퓨터에도 ASP.NET MVC 프레임 워크를 설치해야합니다.

빌드 서버는 MVC 어셈블리를 찾지 만 거기에 설치되어 있지 않으면 찾지 않습니다.

http://www.asp.net/mvc/mvc3에서 설치 프로그램을 다운로드 한 다음 빌드 서버에서 설치 프로그램을 실행하기 만하면됩니다.

행운을 빌어 요!

+0

arame, 이것은 답변입니다. 당신은 당신의 gac에서 mvc를 참조 할 것입니다. 그리고 그것은 mvc가 "가정"한 곳입니다. 따라서 빌드 에이전트가 빌드 인 시스템에없는 경우 항상 실패합니다. –

+0

두 번째 응용 프로그램을 설치하고 이전의 "솔루션"이 작동하지 않았습니다. 로그 파일은 어셈블리를 찾는 위치를 알려주므로 찾고있는 위치에 놓고 찾지 않습니다. 내 bin 폴더 또는 C : \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ – arame3333

1

다른 대안은 System.Web.Mvc.dll을 소스 제어에 체크인 한 다음 system.web.mvc.dll에 대한 참조를 다시 만들어 프로젝트와 관련된 새 위치를 가리 키도록하는 것입니다. MVC 프레임 워크는 하나의 어셈블리이므로이 작업을 쉽게 수행 할 수 있습니다. 내 컴퓨터에

이이 위치에 있습니다 : @ SevaTitov의 대답에 추가

+0

에 있는지 여부를 확인하고 로그 파일에서 "bin \ System.Web.Mvc"로 간주됩니다. dll "이지만 이름이"System.Web.Mvc "와 일치하지 않습니다. – arame3333

1

프로젝트의 'lib 디렉토리'폴더에

\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\*.dll 
\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\*.dll 

복사 이러한 어셈블리에서 이러한 어셈블리에 대한 참조를 제거 귀하의 프로젝트를 수정하고 'lib'폴더에서 다시 추가하십시오. 이렇게하면 .CSPROJ 파일의 'HintPath'가 변경되어 빌드 시스템에서 빌드 할 때 'lib'폴더에서 사용됩니다. 개발자가 lib 폴더를 동기화하지 않는 경우 VS는 위의 어셈블리 검색 폴더에서 가져와야하므로 아무런 해를 끼치 지 않지만 빌드 컴퓨터에서도 찾을 수 있습니다.

+0

NuGet을 사용하여 참조 및 상대 어셈블리 위치를 처리하는 MVC4로 업그레이드하십시오. – yzorg

관련 문제