지원됩니까?
그렇다면 활성화하는 방법이 있습니까? Razor가 충분히 새로운 컴파일러를 사용하지 않는다고 가정하고 있습니다 …? VS2015 IDE는 괜찮은 것 같지만 런타임에
CS1056 : 예기치 않은 문자 ‘$’
답변
업데이트 :
Visual Studio 2015 업데이트 1부터 GUI에 아래 단계를 수행하는 간단한 프로세스가 있습니다. 웹 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 “Enable C # 6 / VB 14″를 선택하기 만하면됩니다. 자세한 내용은 MSDN 블로그 게시물 ” C # 6 / VB 14를 활성화하는 새로운 기능 “에서 확인할 수 있습니다.
이 답변이 작성된 이후 NuGet 패키지의 도움으로이 기능이 추가되었습니다.
MVC5를 사용하는 경우이 Nuget 패키지를 솔루션에 추가하십시오.
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
nuget 패키지는 web.config를 수정해야하지만 다음 구성이 web.config 파일에 있는지 확인합니다 (그리고 추가하지 않은 경우).
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
MVC6에서는 이것이 내장되어 있습니다.
원래 답변 :
<div>
@($"Hello {this.Model.SomeProperty}")
</div>
이것은 MVC6이있는 C # 6에서만 작동합니다. C # 6 컴파일러로 MVC5를 실행하더라도 작동하지 않습니다.
비결은 면도기 파서가 아직 일부 구문을 인식 할만큼 똑똑하지 않기 때문에 전체를 괄호로 묶어야한다는 것입니다 ( ?.
면도기 뷰에서도 null 조건부 연산자 ( )를 사용할 때이 작업을 수행해야합니다 ).
즉, Razor의 문자열 보간 은 현재 MVC6에서 약간 버그 가 있으므로 문제가 발생하더라도 놀라지 않을 것입니다. 그들이 해결 될 것인지 여부는 또 다른 문제입니다.
답변
-
패키지 관리자 콘솔 에서 다음 명령을 실행
CodeDom
하여 프로젝트에 필요한 공급자를 추가합니다 . 필요한 설정을web.config
추가CodeDom
하기 위해 파일을 자동으로 수정합니다 .Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
-
재시작
Visual Studio
참고 : 로 @Jake은 당신이있는 경우,이 답변에 따라 자신의 의견에 언급 DotNetCompilerPlatform
이미 패키지가 바로 업데이트해야 할 수 있습니다.