2016-06-06 2 views
10

issues with getting it to work in .NET Core으로 인해 면도기 프리 컴파일 has been removed from RC2이 발생합니다.ASP.NET Core RC2/1.0 Razor보기에서 컴파일 오류를 확인하는 방법은 무엇입니까?

.cshtml 파일 중 하나에 구문 오류가있는 경우 CI 빌드를 실패하는 방법이 있습니까? 아니면 프리 컴파일이 돌아올 때까지 가능하지 않습니까?

(내가 ASP.NET CLI samples에서 HelloMvc 프로젝트에이 테스트 해요 Views\Home\Index.cshtml 파일이 문자 그대로 아무것도 가질 수 있고 dotnet build 여전히 성공합니다..)

답변

5

현재 RC2 빌드 시스템이 완전히 Compiler/Preprocess 폴더를 무시하는 것 - 당신은 말 그대로 아무것도 넣을 수없고 빌드 오류도 발생하지 않습니다. Roslyn이 예비 컴파일을하기 위해 백업 될 때까지는 현재 빌드 단계에서 .cshtml 파일을 확인할 수 없다고 생각합니다.

내가 찾은 유일한 해결 방법은/어떤 더러운 벌금을 사용하여 프로젝트에 모든 .cshtml 파일을 열 트릭을 교체하고, 인텔리 엔진이 면도기 코드를 확인해야하는 비주얼 스튜디오를 얻는 것입니다. commit that removed razor precompilation 보면

업데이트

, 전체 RazorPreCompileModule 자체가 실제로 제거 된 것으로 보인다 및 won't be back for some time. 이 코드가 프로젝트에 수동으로 다시 추가 되더라도 dotnet 빌드는 컴파일 모듈을 실행하지 않습니다.

업데이트 2

보기 컴파일 다시 ASP.NET 코어 1.1입니다!

"dependencies": { 
    "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Design": "1.1.0-preview4-final" 
} 

과 당신의 "도구"섹션에 다음과 같은 :

"tools": { 
    "Microsoft.AspNetCore.Razor.Tools”: “1.1.0-preview4-final", 
    "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Tools": "1.1.0-preview4-final" 
} 

하고 "스크립트"아래

그것을 사용하려면 은 "종속"섹션 project.json에 다음을 추가 "postpublish"에 면도칼 사전 컴파일 명령을 추가 :

"scripts": { 
    "postpublish": [ 
     "dotnet razor-precompile -configuration %publish:Configuration% -framework %publish:TargetFramework% -output-path %publish:OutputPath% %publish:ProjectPath%" 
    ] 
} 

업데이트 3 - csproj

마침내 우리는 VS2017로 이동하여 csproj로 프로젝트를 이전했습니다. 물론 이것은 면도칼 사전 컴파일을 부러 뜨 렸습니다. 그리고 소년은 그것을 수정하는 방법을 알아 내기위한 토끼 구멍이었습니다 - official instructions are here.

아마도 첫 번째 문제는 자동화 된 xproj/project.json -> csproj 마이그레이션 실패입니다. project.jsonpostpublish 스크립트 섹션이있는 경우 자동화 된 이전이 실패하므로 이전하기 전에 해당 섹션을 완전히 삭제하십시오.

.csproj<Target Name="PostPublishTarget" AfterTargets="Publish">...</Target>을 추가하여 게시 게시 스크립트를 실행할 수는 있지만 이제는 면도기 사전 컴파일에 필요하지 않습니다.그래서 속히, 여기에 프로젝트를 마이그레이션 한 후, VS2017/csproj 토지에 면도칼 사전 컴파일을 설정하는 방법은 다음과 같습니다

  1. 이 csproj에 올바른보기 편집 패키지에 대한 참조를 추가합니다. 프로젝트의 <PackageReference> 모든 태그를 포함하는 <ItemGroup>에서 추가

    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="1.1.0" />

  2. 이 csproj에 MvcRazorCompileOnPublish 속성을 추가합니다. 등 프로젝트 <VersionPrefix>, <TargetFramework>를 포함하는 <PropertyGroup> 섹션에서 추가

    <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>

하면됩니다. 빌드 시스템은 이제 프로젝트가 게시 될 때마다 면도기 사전 컴파일을 실행합니다. 게시 할 때 빌드 출력에 Razor view compilation for myApp -> obj\Release\netcoreapp1.1\myApp.PrecompiledViews.dll과 같은 내용이 표시되어야합니다.

+0

어떻게하면 ASP 핵심 프로젝트가 csproj 형식으로 다시 이전 되었습니까? – AdamC

+0

마지막으로 csproj :)에 대한 답변을 업데이트했습니다. – Ryan

+1

@Ryan이 글은 게시 용입니다. 정상적인 빌드/컴파일은 어떨까요? –

관련 문제