`DotNet SDK Target`에서 Preview Version을 제외하는 방법이 궁금합니다.

DotNet SDK Target에서 Preview Version을 제외하는 방법이 궁금합니다.

이유 Preview Version인 .NET 8.0이 설치되어있으면 .NET 7.0이하 프로젝트 빌드가 안됩니다

2023.11.01 기준

  • 추측 : Core 환경에서 하위 Core Framework??를 지원하지만 Preview에서는 호환성이 떨어집니다.

  • 해결 방법 : global.json을 사용하여 Preview SDK Targeting을 막을 수 있습니다.

// global.json
{
  "sdk": {
    "allowPrerelease": false
  }
}

참조 문서 :point_down:

global.json이 아닌 다른 방법으로 Preview tageting을 막는 방법을 찾고 있습니다.

  • Azure DevOps에서 Preview SDK Tartgeting을 따로 지정하지 않으면 빌드가 안되는 것으로 보아
    다른 방법으로 막을 수 있는 것 같습니다.

이유 : 프로젝트 별로 global.json을 추가해야하며 실수로 커밋하는 일이 발생합니다.

  • 팀 단위에서 global.json을 사용하는 사람이 없습니다.
  • 따라서 global.json Or gitignore : global.json 추가하는 것이 애매합니다.

프리뷰 8.0만 설치되어 있으면 그렇지만, 7.0이 설치되어 있고 타겟이 7.0이면 됩니다.

  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
  </PropertyGroup>

타겟 프레임워크의 통일은 공동 개발에서 가장 중요한 밑작업이 아닌지요?

단순하게 프리뷰 빌드만 막은 경우, 만약 .net 9.0 이 나오면, 어떤 어셈블리는 7.0, 어떤 어셈블리는 8.0 인 경우도 발생하고, 7.0 어셈블리가 8.0 어셈블리를 참조하면 문제가 상당히 커질텐데요.

죄송합니다. 설명이 부족했네요.

프리뷰 8.0만 설치되어 있으면 그렇지만, 7.0이 설치되어 있고 타겟이 7.0이면 됩니다.

저는 프리뷰 포함 최신 SDK로만 빌드가 됩니다. :smiling_face_with_tear:


타겟 프레임워크의 통일은

공용으로 .NET 6.0을 사용하고 있으며 MAUI 프로젝트.NET 7.0부터 사용 가능합니다.
++ 지원 기간을 고려해서 최신 .NET 8.0으로 진행중입니다.

Ref: :point_down: