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


90

.NET 4.6을 대상으로하고 C # 언어 버전을 6으로 변경하여 최신 C # 버전을 활용하려고합니다.

그러나 컴파일하는 동안 다음 오류가 발생했습니다.

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

/langversion:6Web.Config 설정을 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">

하지만 더 낮은 언어 버전에 의존하지 않고 어떻게 해결할 수 있습니까?

Visual Studio 2015 Community Edition을 사용하고 있으며 Visual Studio 2015에서 기본적으로 설치되지 않은 경우를 대비하여 .NET Framework 4.6도 수동으로 설치했습니다.

이 프로젝트는 Visual Studio 2015에서 만든 표준 ASP.NET MVC 템플릿 프로젝트입니다.


1
내 경우에는 내가에만 제거해야 /langversion:6...
bohdan_trotsenko

@modosansreves 기본 언어 버전으로 되돌릴 것입니다. C # 5입니다. C # 6 언어 기능을 사용할 수 있는지 확인하십시오.
Rosdi Kasim 2015

과연. 이렇게하면 C # 6 기능을 사용할 수 없습니다. 감사.
bohdan_trotsenko 2015

답변:


89

Web.Config프레임 워크 버전을 변경할 때 파일의 컴파일러 "유형"에주의하십시오 .

4.5 및 C # 5 용-

type="Microsoft.CSharp.CSharpCodeProvider...

4.6 및 C # 6 용-

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

이 포럼 게시물의 추가 정보


20
! 내가 때이를 자동으로 업데이트하지 않는 비주얼 스튜디오 2015의 버그로 생각하지만이 작품은 ... .NET 4.6 및 C # 6. 내 응용 프로그램을 다시 대상
Rosdi 카심

나는 당신이 옳다고 생각합니다. 나는 그것에 쏘 였고 당신의 질문을 우연히 발견했습니다. 다행히 내가 찾은 다음 링크가 답이었습니다.
DrewB

1
모든 .NET 대상에 대한 범용 CSharpCodeProvider가 있습니까?
denfromufa

1
내 web.config에 올바른 유형이 있고 언어 버전이 기본값으로 설정되었습니다 <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />. 솔루션을 정리하고 다시 컴파일하면 VS 2019에서 해결되었습니다.
joym8

31

다음 NuGet 패키지 (설치된 패키지)를 업데이트하여 문제를 해결합니다.

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  • Microsoft.Net. 컴파일러

이 개 답변보다는 코멘트입니다
알 Lelopath

2
이것이 진정한 해결책입니다 !! 나를 위해 해결이 nuget 패키지와 문제 제거
Geomorillo

C # 6.0으로 전환했지만 패키지는 여전히 이전 버전에있었습니다. 1.0에서 1.0.4로 업데이트하는 것이 저에게 효과적이었습니다.
Mixxiphoid

7
@AlLelopath는 작은 대답이기 때문에 댓글을 남기지 않습니다. 이 작은 "댓글"은 저와 다른 사람들을 위해 문제를 해결 했으므로 대답으로 유지하는 것이 좋습니다.
Shimmy Weitzhandler 2011

14

1. 프로젝트로 이동하여 프로젝트 속성을 선택합니다.

2 빌드를 선택하고 고급 버튼을 클릭합니다.

3. Language Version default를 선택합니다.

4. 저장.

https://youtu.be/IP8feQeWqkk


VS2013에서이 오류가 발생했습니다. 이 솔루션은 불행히도 작동하지 않았습니다.
Jviaches

2
이것은 나를 위해 일했습니다. 다른 모든 제안 된 솔루션은 web.config 파일 변경 또는 NuGet 패키지 / 업데이트 다운로드를 중심으로 진행되었습니다. 컴파일러는 잘못된 버전에 대한 오류를 계속 던졌고 구성 파일에 해당 설정이 없었기 때문에 혼란 스러웠습니다. 고급 빌드 속성이 NuGet 패키지 업데이트에 의해 자동으로 업데이트되지 않았습니다.
Kiran Ramaswamy

3

프로젝트가 VS2015로 완전히 업그레이드되지 않은 경우 이러한 행동을 만났습니다. VS2013에서 2015의 솔루션을 열면이 오류가 발생합니다.


저도이 오류가 기본적으로 VS2015를 설치해야 함을 의미한다고 생각합니다! 프로젝트에 다른 사람은 2013 년에 대처할 수없는 새로운 언어 기능을 사용
JonnyRaa

2

NuGet 패키지 관리자 콘솔을 열고 다음 명령을 실행합니다.

업데이트 패키지 Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r


0

ASP.NET 이상한 컴파일 오류에 대한 답변을 참조하십시오 ! .

C # 언어를 5로 다운 그레이드하면 문제가 가려 질뿐입니다. 누군가가 C # 6 기능을 사용하자마자 웹 사이트 / 프로젝트가 중단되고 다시 수정하는 데 시간을 할애하게됩니다. 링크에서 해결책을 시도하십시오.


0

Visual Studio 2019에서 처음으로 응용 프로그램을로드 할 때 비슷한 문제가 발생했습니다. "Microsoft.CodeDom.Providers.DotNetCompilerPlatform"너겟을 최신 버전으로 업데이트하면 트릭이 발생했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.