본문 바로가기

프로그래밍/C#

[Trouble Shooting] c#버전 확인 및 변경하기 (in vs)

300x250

문제

 

'대상으로 형식화된 개체 만들기' 기능은 c# 7.3에서 사용할 수 없습니다. 9.0 이상의 언어 버전을 사용하세요.

 

c# 프로그램을 실행시키려는데 위와 같은 에러 메세지가 뜨고 시작이 되지 않았다.

 

 

프로젝트 파일 > 속성 에 들어가 c# 버전을 설정해보려 했지만 불가능했다. 

 

 

왜냐하면 닷넷 버전에 따라 c# 버전이 자동으로 선택되기 때문이었다. 

 

c# 버전 확인하는 법

 

 

도구 > Visual Studio 명령 프롬포트 > csc -langversion:?

 

 

그런데 나는 닷넷도 최신버전이고 c#도 최신버전이었다. 따라서 구글링을 통해서 이 문제를 해결할 방법을 찾았다. 

 

문제 해결

Microsoft c# language 홈페이지에 따르면 project file(csproj) 파일에서 language version을 수정해주면 된다고 한다. (참고)그런데 visual studio 에서는 이 파일이 열리지 않는다. 

 

.csproj 파일 우클릭 > 연결프로그램 > 메모장 or visual studio code로 편집할 수 있다. 

 

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" ...[생략]... />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{4F3F253F-549E-42AD-B367-881973F0EEA4}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <RootNamespace>ConsoleApp1</RootNamespace>
    <AssemblyName>ConsoleApp1</AssemblyName>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <Deterministic>true</Deterministic>
    <LangVersion>9.0</LangVersion> //여기를 추가!!
  </PropertyGroup>
    // ...[생략]...
</Project>

 

이후 시작 버튼을 눌러주면 잘 실행이 되는 것을 볼 수 있다. 

 

참고:

visual studio 설치 및 환경 설정 : https://studium-anywhere.tistory.com/42

300x250