Unity 버전을 2018.4 로 업데이트 하고 나서 Visual Studio 2015 에서 다음과 같은 에러가 발생했습니다.
error CS1617: Invalid option 'latest' for /langversion; must be ISO-1, ISO-2, Default or an integer in range 1 to 6. |
LangVersion 값이 ISO-1, ISO-2, Default 혹은 1~6 사이의 정수 값 이어야 되는데 lastest로 잡혀 있다고 합니다.
MS 공식 문서에는 latest 가 정의 되어 있지만 Visual Studio 2019 에 적용되는 규칙이라고 합니다. Visual Studio 2015 이후에 업데이트된 값인가 봅니다.
https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/configure-language-version
이 문제를 해결하는 방법들을 기록으로 남겨봅니다.
1. Visual Studio 메뉴를 이용한 방법
상단의 Project 메뉴에서 Assembly-CSharp Properties... 를 선택해 줍니다.
Assembly-CSharp Properties 창 좌측 메뉴에서 Build 를 선택하고 우측 하단의 Advanced... 버튼을 클릭합니다.
Advanced Build Settings 창을 열면 Language Version 값이 비어 있습니다.
Language Version 값을 선택하면 사용 가능한 값 목록이 나옵니다.
참고
Assembly-CSharp Properties 창이 열리지 않는다면
Tools > Options > Tools for Unity > General 에서
Access to project properties 옵션을 False 에서 True 로 변환 후 Visual Studio 재시작
2. LangVersion 이 정의된 파일을 직접 수정
프로젝트 경로의 Assembly-CSharp.csproj 파일안에서 텍스트로 같은 내용을 확인 할 수 있습니다.
3. C# Script 에서 LangVersion 수정
위 문서를 참고해 다음과 같은 Script 를 추가해 프로젝트 파일을 수정할 수 있습니다.
using SyntaxTree.VisualStudio.Unity.Bridge;
...
ProjectFilesGenerator.ProjectFileGeneration += ( string name, string content ) =>
{
return content.Replace("<LangVersion>latest</LangVersion>","<LangVersion>6</LangVersion>");
};
...
4. Microsoft.Net.Compilers 최신 버전 설치
Visual Studio 의 NuGet Package 를 사용해 최신 버전의 Microsoft.Net.Compilers 설치해 C# 7.0 으로 업데이트 합니다.
단, 추가적인 패키지 설치가 필요할 수 있다고 합니다.
https://stackoverflow.com/questions/39461407/how-to-use-c-sharp-7-with-visual-studio-2015
5. Visual Studio 최신 버전 사용
2017 이상의 Visual Studio 를 사용합니다.
'Works > Unity 3D' 카테고리의 다른 글
[Unity3D] Image Prefab 과 Memory (0) | 2020.01.07 |
---|---|
[Unity3D] Script Templates 사용하기 (0) | 2019.09.19 |
[Unity3D] Memory Profiler 설치 (0) | 2019.08.29 |
[Unity3D] Application Focus Out 상황에서 마우스 이벤트 (0) | 2019.08.22 |
[Unity3D] Google Play Console 빌드 업로드 에러 (1) | 2019.08.21 |
댓글