Nice programing

CS1617 : / langversion에 대한 잘못된 옵션 '6';

nicepro 2020. 10. 13. 19:20
반응형

CS1617 : / langversion에 대한 잘못된 옵션 '6'; ISO-1, ISO-2, 3, 4, 5 또는 기본값이어야합니다.


Windows 2008 Server 컴퓨터에서 새로운 ASP.NET MVC 응용 프로그램 (VS 2015 커뮤니티에서 곧바로)을 실행할 때 해당 오류가 계속 발생했습니다.


많은 사람들이 그것에 접근하고 있으므로 여기에 게시하고 싶었습니다.

이 사람 덕분에 미친 쉬운 해결 방법을 찾았습니다 : Expertdebugger .

다음과 같이 언어 버전을 C # 6에서 C # 5로 다운 그레이드하면됩니다.

<system.codedom>
    <compilers>
      <compiler language=”c#;cs;csharp” extension=”.cs” type=”Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ warningLevel=”4″ compilerOptions=”/langversion:6 /nowarn:1659;1699;1701″>
        <providerOption name=”CompilerVersion” value=”v4.0″/>
      </compiler>
      <compiler language=”vb;vbs;visualbasic;vbscript” extension=”.vb” type=”Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ warningLevel=”4″ compilerOptions=”/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+”>
          <providerOption name=”CompilerVersion” value=”v4.0″/>
      </compiler>
    </compilers>
  </system.codedom>

변경 langversion:66 5에서 바닥을 향해 -langversion:5

나를 위해 고쳤습니다. 감사합니다.


C # 6.0을 사용하려는 경우 :

  1. 프로젝트의 .NET 버전이 4.5.2 이상인지 확인하십시오.
  2. 그런 다음 .config파일을 확인하여 다음 수정을 수행하십시오.

을 찾아 system.codedom아래와 같이 보이게됩니다 너무 수정 :

<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>
</system.codedom>

제 경우에는 잘못된 MSBuild.exe를 사용했습니다.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

오류를 해결하기 위해 Visual Studio 2017 MSBuild.exe 사용을 시작하도록 PATH 환경 변수를 업데이트했습니다.

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSbuild.exe

자세한 내용은 다음 링크를 참조하십시오. 오류 CS1056 : tfs 연속 통합 프로세스에서 msbuild를 실행하는 예기치 않은 문자 '$'


내 경우 오류의 직접적인 원인은 다음과 같습니다.

빌드-> 고급-> 언어 버전

이는 잘못된 언어 옵션이 있다는 오류이므로 의미가 있습니다.

하지만 이전에는 잘 작동 했으므로 선택 했어야합니다. 무엇이 바뀌 었습니까? 제가 2015 년을 사용하고있는 동안 제 팀원이 2017 년으로 업그레이드 된 것으로 나타났습니다. 그가 프로젝트를 변경 한 후 언어 버전이 변경되었고 소스 제어에 대한 변경 사항을 받았습니다. 하지만 선택한 버전은 내 버전의 vs에서 사용할 수 없으므로 비어 있습니다. 따라서 오류가 발생했습니다. 언어 드롭 다운에서 값을 선택한 후 (기본값 선택) 새 오류가 나타납니다. 새로운 오류로 인해 최신 버전의 C #을 사용하는 모든 코드 줄에서 빌드 오류가 발생했습니다. 동일한 기능을 수행하도록 코드를 변경했지만 C # 버전 구문과 문제가 해결되었습니다.

따라서 오류의 직접적인 원인은 실제로 잘못된 언어 버전 선택 이었지만 근본 원인은 서로 다른 버전과 충돌하는 C # 버전 때문이었습니다.


제 경우에는 오류가 다음과 같습니다.

오류 CS1617 / langversion에 대한 잘못된 옵션 'latest'; ISO-1, ISO-2, 기본값 또는 1 ~ 6 범위의 정수 여야합니다.

메모장으로 .csproj 파일을 열었을 때 다음 줄을 보았습니다.

<PropertyGroup>
    <LangVersion>latest</LangVersion>
</PropertyGroup>

1에서 6 사이의 정수에 대한 최신 정보를 변경했습니다.

<LangVersion>6</LangVersion>

오류가 사라졌습니다!


언어 버전을 6에서 5로 변경하는 대신 컴파일러 태그의 "type"속성을

Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

...에

Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

Microsoft.Net.Compilers Nuget 패키지를 최신 버전 (최소 2.x)으로 업그레이드합니다.


나에게 가장 쉬운 해결책은 패키지 관리자를 통해 .Net 컴파일러를 업그레이드하는 것이 었습니다.

설치 패키지 Microsoft.Net.Compilers

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>
</system.codedom>

Microsoft.Net.Compilers를 버전 2.0 이상으로 업데이트했습니다.

이것 좀 봐


이럴 때는 vs 2019를 사용해보세요.


난 그냥은 변경 langversiondefault그것은 나를 위해 일했습니다. VS 2015

<system.codedom>
<compilers>
  <compiler language=”c#;cs;csharp” extension=”.cs” type=”Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ warningLevel=”4″ compilerOptions=”/langversion:default /nowarn:1659;1699;1701″>
    <providerOption name=”CompilerVersion” value=”v4.0″/>
  </compiler>
  <compiler language=”vb;vbs;visualbasic;vbscript” extension=”.vb” type=”Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ warningLevel=”4″ compilerOptions=”/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+”>
      <providerOption name=”CompilerVersion” value=”v4.0″/>
  </compiler>
</compilers>

참고 URL : https://stackoverflow.com/questions/32380064/cs1617-invalid-option-6-for-langversion-must-be-iso-1-iso-2-3-4-5-or-de

반응형