[c#] 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>


답변

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

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

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

하지만 이전에는 잘 작동 했으므로 선택 했어야합니다. 무엇이 바뀌 었습니까? 제가 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>

오류가 사라졌습니다!


답변

제 경우에는 잘못된 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를 실행하는 예기치 않은 문자 ‘$’


답변

제 경우에는 (다른 시스템에서 프로젝트 생성) :

  1. 프로젝트 정리 (솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 항목 정리 클릭).
  2. 그런 다음 프로젝트를 빌드합니다 (솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 빌드 항목 클릭).

이 프로젝트를 실행할 수 있습니다.


답변

언어 버전을 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