[c#] C # 7.3에서는 ‘선언 사용’기능을 사용할 수 없습니다. 언어 버전 8.0 이상을 사용하십시오. 한 시스템에서는 오류가 발생하지만 다른 시스템에서는 작동합니다.

Visual Studio Enterprise 16.3.7두 대의 개별 컴퓨터에서 사용할 때 하나는 잘 빌드되고 다른 하나는 오류를 발생시킵니다.

C # 7.3에서는 ‘선언 사용’기능을 사용할 수 없습니다. 언어 버전 8.0 이상을 사용하십시오.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

https://stackoverflow.com/a/48085575/3850405에 제안 LangVersion.csproj대로 설정 하거나 위의 인쇄 화면과 같이 Visual Studio에서 자동으로 수정하도록 하면 작동하지 않는 컴퓨터에서 쉽게 해결할 수 있습니다 .

<LangVersion>8.0</LangVersion>

내가 이해할 수없는 것은 왜이 기계가 없어도 한 기계가 잘 빌드 .csproj되고 다른 기계가 그것을 필요로하는 것입니다.



답변

나는 같은 오류를 받았지만 단순히 포함하는 것을 잊어 버렸습니다.

<LangVersion>8.0</LangVersion>

솔루션의 모든 .csproj 파일의 속성 . 다음은 현재 c # 8 설정입니다.

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <Nullable>enable</Nullable>
    <NullableContextOptions>enable</NullableContextOptions>
  </PropertyGroup>

코어 2.2에서 3.x로 마이그레이션 할 때 다음 문서가 가장 유용한 것으로 나타났습니다.

MSDN 2.2-> 3.0

MSDN 3.0-> 3.1


답변

Visual Studio를 16.3.X에서 16.4.2로 버전으로 업데이트해야했습니다. 이것은 문제를 해결했고 LangVersion을 추가 할 필요가 없었습니다.

크레딧 : https://github.com/aspnet/AspNetCore.Docs/issues/16047


답변

컴파일러가 기본적으로 다른 대상 프레임 워크에 다른 C # 언어 버전을 사용하기 때문일 수 있습니다.

기본 C # 언어를 무시하려면 프로젝트 파일에 추가하십시오 (문제가 제안 된대로).

<PropertyGroup>
   <LangVersion>8.0</LangVersion>
</PropertyGroup>

또는:

<PropertyGroup>
   <LangVersion>latest</LangVersion>
</PropertyGroup>

참조 버전 C # 언어 다른 대상 프레임 워크와 방법을 수동으로 C # 언어 버전을 선택하는 방법에 대한 기본 C # 언어 버전을.

스택 오버플로 응답 참조 C # 8은 .NET Framework를 지원합니까? 이 주제에 대한 자세한 정보.


다음은 C # 언어 버전 관리 기사의 일부입니다 .

C # 언어 버전 관리

최신 C # 컴파일러는 프로젝트의 대상 프레임 워크를 기반으로 기본 언어 버전을 결정합니다. C # 언어에는 모든 .NET 구현에서 사용할 수없는 형식 또는 런타임 구성 요소에 의존하는 기능이있을 수 있기 때문입니다. 또한 프로젝트의 대상이 무엇이든 기본적으로 가장 높은 언어 버전을 얻을 수 있습니다.

이 문서의 규칙은 Visual Studio 2019 또는 .NET Core 3.0 SDK와 함께 제공되는 컴파일러에 적용됩니다. Visual Studio 2017 또는 이전 .NET Core SDK 버전의 일부인 C # 컴파일러는 기본적으로 C # 7.0을 대상으로합니다.

기본값

컴파일러는 다음 규칙에 따라 기본값을 결정합니다.

--------------------------------------------------------
Target framework | version | C# language version default
--------------------------------------------------------
.NET Core        | 3.x     | C# 8.0
.NET Core        | 2.x     | C# 7.3
.NET Standard    | 2.1     | C# 8.0
.NET Standard    | 2.0     | C# 7.3
.NET Standard    | 1.x     | C# 7.3
.NET Framework   | all     | C# 7.3
--------------------------------------------------------

기본값 무시

C # 버전을 명시 적으로 지정해야하는 경우 여러 가지 방법으로 지정할 수 있습니다.

  • 프로젝트 파일을 수동으로 편집하십시오.
  • 서브 디렉토리에서 여러 프로젝트의 언어 버전을 설정하십시오.
  • -langversion 컴파일러 옵션을 구성하십시오.

프로젝트 파일 편집

프로젝트 파일에서 언어 버전을 설정할 수 있습니다. 예를 들어, 미리보기 기능에 명시 적으로 액세스하려면 다음과 같은 요소를 추가하십시오.

<PropertyGroup>
   <LangVersion>preview</LangVersion>
</PropertyGroup>

이 값 preview은 컴파일러에서 지원하는 최신 미리보기 C # 언어 버전을 사용합니다.

여러 프로젝트 구성

여러 프로젝트를 구성하기 위해 요소 가 포함 된 Directory.Build.props 파일을 만들 수 있습니다 <LangVersion>. 일반적으로 솔루션 디렉토리에서 수행합니다. 솔루션 디렉토리 의 Directory.Build.props 파일에 다음을 추가하십시오 .

<Project>
 <PropertyGroup>
   <LangVersion>preview</LangVersion>
 </PropertyGroup>
</Project>

이제 해당 파일을 포함하는 디렉토리의 모든 하위 디렉토리에 빌드가 미리보기 C # 버전을 사용합니다. 자세한 정보는 빌드 사용자 정의 기사를 참조하십시오 .


답변

최신 버전의 .Net Core 3.0 및 3.1을 다운로드했으며 동일한 문제가 발생했습니다. 나를 위해 수정 프로그램은 Visual Studio 2019의 최신 업데이트 (버전 16.4.2)를 다운로드하는 것 같습니다.

이것은 또한 내 컴퓨터를 다시 시작했고 오류가 사라졌습니다.


답변