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=\"Web\" /optionInfer+”>
<providerOption name=”CompilerVersion” value=”v4.0″/>
</compiler>
</compilers>
</system.codedom>
변경 langversion:6
6 5에서 바닥을 향해 -langversion:5
나를 위해 고쳤습니다. 감사합니다.
C # 6.0을 사용하려는 경우 :
- 프로젝트의 .NET 버전이 4.5.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=\"Web\" /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=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
Microsoft.Net.Compilers를 버전 2.0 이상으로 업데이트했습니다.
이럴 때는 vs 2019를 사용해보세요.
난 그냥은 변경 langversion
에 default
그것은 나를 위해 일했습니다. 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=\"Web\" /optionInfer+”>
<providerOption name=”CompilerVersion” value=”v4.0″/>
</compiler>
</compilers>
'Nice programing' 카테고리의 다른 글
코드에서 이미지 버튼의 투명한 배경을 설정하는 방법은 무엇입니까? (0) | 2020.10.13 |
---|---|
https URL에 Net :: HTTP.get 사용 (0) | 2020.10.13 |
특정 속성의 PropertyInfo를 얻는 방법은 무엇입니까? (0) | 2020.10.13 |
자체 작업 버튼을 사용하여 스낵바를 닫는 방법은 무엇입니까? (0) | 2020.10.13 |
ASP.NET MVC / WebAPI 응용 프로그램에서 HTTP OPTIONS 동사를 지원하는 방법 (0) | 2020.10.13 |