msbuild 작업이 뷰를 컴파일하기를 원하므로 컴파일 시간 오류가 있는지 확인할 수 있습니다 ... 컴파일 시간. 어떤 아이디어?
msbuild 작업이 뷰를 컴파일하기를 원하므로 컴파일 시간 오류가 있는지 확인할 수 있습니다 ... 컴파일 시간. 어떤 아이디어?
답변:
솔직히 RazorGenerator nuget 패키지를 추천합니다 . 이렇게하면 뷰 .designer.cs
를 저장할 때 생성 된 파일이 생성되고 뷰에 대한 컴파일 시간 오류가 발생하는 것 외에도 어셈블리로 사전 컴파일되어 (= 빠른 예열) Resharper가 추가 도움을 제공합니다.
이를 사용하려면 ASP.NET MVC 프로젝트에 RazorGenerator nuget 패키지를 포함시키고 Tools (도구) → Extensions and Updates (도구 → 확장 및 업데이트) 항목 아래에 " Razor Generator "확장을 설치하십시오 .
우리는 이것을 사용 하며이 접근법으로 컴파일 당 오버 헤드는 훨씬 적습니다. 이 외에도 RedGate의 .NET Demon을 추천 하여 컴파일 시간 영향을 크게 줄입니다.
도움이 되었기를 바랍니다.
RC1에 대한 readme 단어 doc에서 (Google이 색인화하지 않음)
ASP.NET 컴파일러 빌드 후 단계
현재,보기 파일 내의 오류는 런타임까지 감지되지 않습니다. 컴파일시 이러한 오류를 감지 할 수 있도록 ASP.NET MVC 프로젝트에는 MvcBuildViews 속성이 포함되어 있으며이 속성은 기본적으로 비활성화되어 있습니다. 이 속성을 활성화하려면 다음 예제와 같이 프로젝트 파일을 열고 MvcBuildViews 속성을 true로 설정하십시오.
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
참고이 기능을 사용하면 빌드 시간에 약간의 오버 헤드가 추가됩니다.
다음 단계를 수행하여 MVC의 이전 릴리스로 작성된 프로젝트를 업데이트하여 뷰의 빌드 시간 유효성 검증을 포함 할 수 있습니다.
<PropertyGroup>
.
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
요소를 주석 해제 하고 다음과 일치하도록 수정하십시오.<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
이를 위해 aspnet_compiler 를 사용할 수 있습니다 .
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v /Virtual/Application/Path/Or/Path/In/IIS/Metabase -p C:\Path\To\Your\WebProject -f -errorstack C:\Where\To\Put\Compiled\Site
여기서 " / Virtual / Application / Path / Or / Path / In / IIS / Metabase "는 " / MyApp "또는 " / lm / w3svc2 / 1 / root / "와 같습니다.
또한 MSDN 에는 AspNetCompiler Task 가 있으며 aspnet_compiler를 MSBuild와 통합하는 방법을 보여줍니다.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="PrecompileWeb">
<AspNetCompiler
VirtualPath="/MyWebSite"
PhysicalPath="c:\inetpub\wwwroot\MyWebSite\"
TargetPath="c:\precompiledweb\MyWebSite\"
Force="true"
Debug="true"
/>
</Target>
</Project>
또한 Resharper를 사용하면 솔루션 전체 분석을 활성화 할 수 있으며 aspx 파일에있을 수있는 컴파일러 오류를 감지합니다. 그것이 우리가하는 일입니다 ...
여기에 주어진 대답은 일부 MVC 버전에서는 작동하지만 다른 MVC 버전에서는 작동하지 않습니다.
간단한 솔루션은 MVC1에서 작동했지만 MVC2로 업그레이드 할 때 더 이상 뷰가 컴파일되지 않았습니다. 이것은 웹 사이트 프로젝트 파일의 버그로 인한 것입니다. 이 Haacked 기사를 참조하십시오.
이것을 참조하십시오 : http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
빌드> 코드 분석 실행
핫키 : Alt+F11
면도기 오류를 포착하는 데 도움이되었습니다.
Visual Studio의 Productivity Power Tools ( 무료 ) 확장 을 사용하면 약간 도움이됩니다 . 특히, Solution Error Visualizer
기능입니다. 이를 통해 솔루션 탐색기 (오류가 발견 된 소스 파일)에 컴파일 오류가 시각적으로 표시됩니다. 그러나 어떤 이유로 든이 기능은 코드의 다른 곳에서 다른 오류와 같이 작동하지 않습니다.
MVC보기를 사용하면 컴파일 타임 오류가 여전히 해당 .cs 파일에서 빨간색으로 밑줄이 표시되지만 솔루션 탐색기에서 이러한 오류가 위쪽으로 전파되지는 않습니다 (포함 소스 파일이 아니더라도).
BlueClouds
이전 진술을 수정 해 주셔서 감사 합니다.
방금 확장 프로그램의 github 프로젝트 에서이 문제 를 보고했습니다 .