programing

C# 6.0을 사용하기 위한 레이저 뷰 엔진 제조 방법

megabox 2023. 8. 7. 22:27
반응형

C# 6.0을 사용하기 위한 레이저 뷰 엔진 제조 방법

현재 레이저 뷰 엔진이 회전하고 다음과 같은 오류가 발생합니다.

언어 버전 6 이상을 사용하십시오.

저에게 포인터를 주는 것이 더 선명할 수도 있습니다.그런데 어떻게 면도기 사용 C# 6.0을 만들 수 있습니까?cs 파일에 있는 나머지 솔루션은 새로운 버전 7 기능을 모두 사용할 수 있습니다.

저는 이것이 다음을 위한 템플릿의 버그 때문이라고 생각합니다.web.config.net 프레임워크의 최신 버전으로 프로젝트를 업그레이드할 때.

저는 이 문제를 해결할 수 있었습니다.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=\&quot;Web\&quot; /optionInfer+" />
</compilers>

에서 이것을 실행하는 경우4.5.1프로젝트, 업그레이드4.5.2고칠지도 몰라요

그렇지 않으면 다음과 같은 새로운 기능을 제공하기 위해 이 NuGet 패키지를 설치하는 것이 좋습니다.Microsoft.CodeDom.Providers.DotNetCompilerPlatform

다음과 같은 작업을 수행합니다.

<p>@Model.Person?.Name</p>

될 수도 있어요.그렇지 않은 경우 다음과 같이 명시적으로 설명해 보십시오.

<p>@(Model.Person?.Name)</p>

다른 답변들도 꽤 좋지만, 저는 이 문제에 대한 단계를 명확하게 설명하는 좋고 짧은 기사를 찾았습니다: https://cpratt.co/using-csharp-6-or-7-with-mvc-5/

간단히 말해서:

  1. 패키지 관리자 콘솔 설치Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

  2. 마지막에 다음 행을 사용하여 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.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      warningLevel="4"
      compilerOptions="/langversion:7 /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.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      warningLevel="4"
      compilerOptions="/langversion:15 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
  </compilers>
</system.codedom>

RazorEngine 템플릿에서 C#6 기능을 활성화하기 위한 최상의 단계별 지침은 다음과 같습니다. https://github.com/Antaris/RazorEngine/issues/363#issuecomment-273106183

여기서 언급되지 않은 것은 app.config에 컴파일러 섹션을 추가할 때 버전 번호가 설치 중인 패키지의 버전과 일치하는지 확인하는 것입니다.댓글에는 버전 1.0.3이었지만 제가 설치한 패키지는 1.0.4로 되어 있어서 다음과 같이 표시해야 했습니다.

<system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
</compilers>

이 이름을 사용하여 프로젝트 솔루션에 폴더 만들기

Directory.Build.props

그런 다음 이 종속성을 추가합니다.

<Project>
 <PropertyGroup>
  <LangVersion>6.0</LangVersion>
 </PropertyGroup>
</Project>

언급URL : https://stackoverflow.com/questions/31689374/how-to-make-razor-view-engine-to-use-c-sharp-6-0

반응형