[asp.net] ASP.NET MVC에서 뷰 컴파일

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의 이전 릴리스로 작성된 프로젝트를 업데이트하여 뷰의 빌드 시간 유효성 검증을 포함 할 수 있습니다.

  1. 텍스트 편집기에서 프로젝트 파일을여십시오.
  2. 최상위 요소 아래에 다음 요소를 추가하십시오 <PropertyGroup>.
    <MvcBuildViews>true</MvcBuildViews>
  3. 프로젝트 파일의 끝에서 <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 파일에있을 수있는 컴파일러 오류를 감지합니다. 그것이 우리가하는 일입니다 …


답변

다음 릴리스의 ASP.NET MVC (1 월 정도에 사용 가능)에는 뷰를 컴파일하는 MSBuild 작업이 있어야하므로 기다릴 수 있습니다.

공지 사항 보기


답변

여기에 주어진 대답은 일부 MVC 버전에서는 작동하지만 다른 MVC 버전에서는 작동하지 않습니다.

간단한 솔루션은 MVC1에서 작동했지만 MVC2로 업그레이드 할 때 더 이상 뷰가 컴파일되지 않았습니다. 이것은 웹 사이트 프로젝트 파일의 버그로 인한 것입니다. 이 Haacked 기사를 참조하십시오.

이것을 참조하십시오 : http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx


답변

빌드> 코드 분석 실행

핫키 : Alt+F11

면도기 오류를 포착하는 데 도움이되었습니다.