2013-03-15 2 views
5

ASP.NET MVC 3 응용 프로그램에 대해 MSBuild 작업을 실행중인 TeamCity가 있습니다. 이제는 (때때로 무작위로) ASPNETCOMPILER : 오류 ASPRUNTIME : 스레드가 실행되는 응용 프로그램 도메인이 언로드되었습니다. " MSBuild가 "MvcBuildViews"를 실행하고 aspnet_compiler.exe를 실행할 때 발생합니다. (http://msdn.microsoft.com/en-us/library/ms164291.aspx를)MSBuild에 사용자 지정 특성 추가하기 작업

는 지금은 나를이 오류에 대한 추적 정보를 스택 줄 수 aspnet_compiler.exe (http://msdn.microsoft.com/en-us/library/ms229863(vs.80).aspx)에 대한 "-errorstack"스위치가 알고 있지만, AspNetCompiler 작업이 속성을 설정하는 가능성에 노출되지 않는 것 같다 .

내 질문은 - 거기에 기존의 MSBuild 작업에 사용자 지정 특성을 전달하는 방법입니다 또는 MSBuild 밖에서 수동으로 aspnet_compiler.exe를 실행하여 -errorstack 기능을 사용 가능하게해야합니까?

+0

나는 상황에 도움이 될 팁을 통해 온 - 그것은 시도 아마 가치가있다. Visual Studio에서 도구 -> 옵션 -> 프로젝트 및 솔루션으로 이동하십시오 (찾을 수없는 경우 "모든 설정 표시"선택) -> "빌드 및 실행". 그런 다음 출력 상세 정보를 진단으로 설정하십시오. 출력 창 (Ctrl-Alt-O)을 열고 빌드를 수행하십시오. –

+0

팁 David의 경우 Thx, 우리의 경우 빌드 서버에서만 문제가 발생했기 때문에 Visual Studio의 추가 진단은 도움이되지 않을 것입니다. 어쨌든 우리가 범인을 찾은 것 같아요, 나는 아래에 응답을 쓸 것입니다. 건배. –

답변

3

우리는이 오류의 원인을 발견했지만 (실제로 MSBuild 작업에 사용자 지정 특성을 추가하는 방법은 아닙니다). 빌드 서버의 메모리가 부족하면이 예외가 발생하는 것으로 보입니다.

3

csproj 파일에서 Exec MSBuild 태스크를 사용하여이 작업을 수행 할 수 있습니다. 예를 들어, 원래 작업 :

<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> 

이되고는 :

<Exec Command="$(MSBuildFrameworkToolsPath)\aspnet_compiler.exe -v temp -errorstack -p $(WebProjectOutputDir)" />