다음을 통해 공유


.NET Framework와 .NET을 모두 지원하도록 프로젝트 구성

.NET Framework와 .NET 둘 다에 대해 병렬로 컴파일하는 솔루션을 만들 수 있습니다. 이 문서에서는 이 목표를 달성하는 데 도움이 되는 몇 가지 프로젝트 조직 옵션을 설명합니다. .NET을 사용하여 프로젝트 레이아웃을 설정하는 방법을 결정할 때 고려해야 할 몇 가지 일반적인 시나리오는 다음과 같습니다. 목록에는 원하는 모든 항목이 포함되지 않을 수 있습니다.

  • 기존 프로젝트와 .NET 프로젝트를 단일 프로젝트로 결합

    이점:

    • 각각 다른 .NET Framework 버전 또는 플랫폼을 대상으로 하는 여러 프로젝트가 아닌 단일 프로젝트를 컴파일하여 빌드 프로세스를 간소화합니다.
    • 단일 프로젝트 파일을 관리해야 하므로 다중 대상 프로젝트에 대한 원본 파일 관리를 간소화합니다. 원본 파일을 추가하거나 제거할 때 대체 방법을 사용하려면 이러한 파일을 다른 프로젝트와 수동으로 동기화해야 합니다.
    • 사용할 NuGet 패키지를 쉽게 생성합니다.
    • 컴파일러 지시문을 사용하여 특정 .NET Framework 버전에 대한 코드를 작성할 수 있습니다.

    단점:

  • 모든 프로젝트를 별도로 유지

    이점:

    • Visual Studio 2019 이상 버전이 없을 수 있는 개발자 및 기여자를 위해 기존 프로젝트에 대한 개발을 지원합니다.
    • 해당 프로젝트에 코드 변동이 필요하지 않으므로 기존 프로젝트에서 새 버그를 만들 가능성을 낮춥니다.

이 예제 GitHub 리포지토리를 살펴보겠습니다. 아래 그림에서는 이 리포지토리를 배치하는 방법을 보여줍니다.

기존 프로젝트 구조 다이어그램

다음 섹션에서는 예제 리포지토리를 기반으로 .NET에 대한 지원을 추가하는 여러 가지 방법을 설명합니다.

기존 프로젝트를 다중 대상 .NET 프로젝트로 바꾸기

기존 *.csproj 파일이 제거되고 여러 프레임워크를 대상으로 하는 단일 *.csproj 파일이 만들어지도록 리포지토리를 다시 구성합니다. 단일 프로젝트가 다른 프레임워크에 대해 컴파일할 수 있기 때문에 이 옵션은 좋은 옵션입니다. 또한 대상 프레임워크당 다양한 컴파일 옵션 및 종속성을 처리할 수 있습니다.

여러 프레임워크 다이어그램을 대상으로 하는 프로젝트

예제 코드는 GitHub를 참조하세요.

주의할 변경 내용은 다음과 같습니다.

  • packages.config*.csproj를.NET *.csproj로 대체합니다. NuGet 패키지는 .으로 <PackageReference> ItemGroup지정됩니다.

기존 프로젝트 유지 및 .NET 프로젝트 만들기

이전 프레임워크를 대상으로 하는 기존 프로젝트가 있는 경우 이러한 프로젝트를 그대로 두고 .NET 프로젝트를 사용하여 향후 프레임워크를 대상으로 지정할 수 있습니다.

다른 폴더 다이어그램에 기존 프로젝트가 있는 .NET 프로젝트

예제 코드는 GitHub를 참조하세요.

.NET 및 기존 프로젝트는 별도의 폴더에 보관됩니다. 프로젝트를 별도의 폴더에 유지하면 Visual Studio 2019 이상의 버전을 사용할 필요가 없습니다. 이전 프로젝트만 여는 별도의 솔루션을 만들 수 있습니다.

참고하십시오