C# 버전 설정 방법?

안녕하세요. :smile:
간단한 질문입니다만 여러분들은 어떤 방식으로 설정 하시는지 궁금해서요!

저는 C# 버전을 설정할 때 .csproj 파일을 직접 편집해서 변경합니다.

<Project>
 <PropertyGroup>
   <LangVersion>9.0</LangVersion>
 </PropertyGroup>
</Project>

혹시 다른 방법이 있는지? 그리고 여러분들은 어떻게 설정하시는지 궁금합니다.

(Slog 카테고리에서 @dimohy C# 같이 따라가기 - slog 글을 보면서 버전 별로 읽어보다가 문득 궁금해져서 질문 드리게 되었습니다. :slight_smile: )

2개의 좋아요

저는 선택하는 .NET 버젼에 따라 갑니다. 가령, .NET 5의 경우 (default) 설정으로 C# 9 가 되는 식입니다.

이 글을 보시면, C# 언어 버젼을 preview나 latest, latestMajor (default가 됨)으로 선택할 수 있습니다.

2개의 좋아요

비주얼 스튜디오 사용 가능한 환경이면 우클릭 - 속성 가서 바꾸기도 합니다(?)

1개의 좋아요

@suwoo 앗 닷넷프레임워크 버전 말고 C# 버전도 속성에서 바꿀 수 있었나요?
어느 항목에 있는지 알 수 있을까요!

앗 죄송합니다 ㅠㅠ 제가 착각한거였어요. 위에 dimohy님께서 말씀해주신게 솔루션인듯 합니다… 송구합니다

1개의 좋아요

저는 제가 사용하는 솔루션의 최상의 디렉토리에 Build 디렉토리 하나 만들고 그쪽에 공용 설정을 보관합니다.
여기서는 *.props 파일이 될 것 같네요.

대략 느낌은 아래것과 비슷한데… 핵심은 import로 내가 설정한 파일을 불러오는 것이에요.
예를들어 C# 버전과 빌드 관련한 정보를 Build\Common.props로 설정했다면,
*.csproj 프로젝트 설정파일 아래에 밑 주소처럼 import 합니다.

2개의 좋아요

@suwoo 아닙니다!! 신경써주셔서 감사합니다 :smile:

있습니다.

아마 프로젝트에 - 우클릭 - 속성 - 빌드(?) - 고급 으로 가면 바꾸는 다이얼로그 떠요.
근데 저 중간에 빌드 였는지는 기억이 안나네요 ㅎㅎ '고급’은 확실할거에요. 함 보심 될듯요~

1개의 좋아요

사실 이런 용도로 “Directory.Build.targets” 파일을 두는 방법이 있습니다. msbuild는 빌드 시 현재 디렉터리의 상위로 올라가면서 “Directory.Build.targets” 파일을 찾게 되고 그 파일이 있으면 설정을 병합하게 됩니다. 따라서, D 드라이브가 작업 디스크라면, D:\ 루트 디렉터리에 Directory.Build.targets 파일을 놓고 다음의 내용을 포함하고 있으면 됩니다.

<Project>
  <PropertyGroup>
    <LangVersion>9.0</LangVersion>
  </PropertyGroup>
</Project>

단지 아쉬운 점이라면, 빌드는 잘 되지만 편집기의 내용에 대해서는 targets 파일이 적용되지 않아 프로젝트 파일에 적용된 버전을 따르게 되어 빨간색 오류 밑줄을 보게 된다는 단점이 있습니다.

2개의 좋아요

@SangHyeon.Kim 아 이런 항목도 있었군요 감사합니다.!!

image

근데 버전 선택 부분에 프레임워크 버전에 따라 자동으로 선택됩니다. 라고 나오네요. 아마 프로젝트마다 선택할 수 있거나 하나보네요?
(Visual Studio 2019 Preview, .NET 4.8, WPF 환경)

@kevin13 앗 감사합니다. :smile:

image

<Project>
  <PropertyGroup>
    <LangVersion>9.0</LangVersion>
  </PropertyGroup>
</Project>

알려주신 것 처럼 Directory.Build.targets 파일 추가하고 버전 내용 입력하면 바로 적용 되네요. 감사합니다!

언어 버전은 원래 프로젝트 단위로 지정돼요 ㅎㅎ
즉 프로젝트별로 다르게 할 수 있어요.

1개의 좋아요

@dimohy 감사드립니다 :smile:
덕분에 preview, latest 등에 대한 옵션도 새롭게 알게되었네요!

@level120 앗 감사합니다. :smile:
수십 개 프로젝트를 관리할 때 편할 수 있겠네요?

제 프로젝트에도 적용 해볼게요.

제가 첨에 말씀드리려고 했던게 이 화면이었는데, 요즘은 언어 버전 선택란이 잠겨 있어서 앗 이게 아니네요 라고 외쳤던거랍니다… :frowning:

1개의 좋아요

@suwoo 아하!! 감사합니다. :slight_smile:

질문하길 잘했네요. 모든 방법을 안 것 같아요 ㅎㅎ