Visual Studio의 네이티브 멀티 타기팅을 사용하여 이전 프로젝트 빌드Use native multi-targeting in Visual Studio to build old projects

일반적으로 최신 버전 Visual Studio를 설치할 때 프로젝트를 업데이트하는 것이 좋습니다.Normally, we recommend that you update your projects when you install the latest version of Visual Studio. 대개 프로젝트 및 코드를 업데이트하는 데 필요한 비용이 새로운 IDE, 컴파일러, 라이브러리 및 도구에서 얻는 혜택보다 큽니다.The cost of updating your projects and code is usually more than offset by the benefits of the new IDE, compiler, libraries, and tools. 그러나 일부 프로젝트는 업데이트할 수 없습니다.However, we know that you may not be able to update some projects. 유지 관리상의 이유로 업그레이드할 수 없는 이전 라이브러리 또는 플랫폼에 연결된 이진 파일이 있을 수 있습니다.You may have binaries that are tied to older libraries or platforms that for maintenance reasons you can’t upgrade. 더 최근 컴파일러로 이동된 경우 중단되는 비표준 언어 생성자가 코드에서 사용될 수 있습니다.Your code may use non-standard language constructs that would break if you moved to a more recent compiler. 코드가 Visual C++의 특정 버전용으로 컴파일된 타사 라이브러리에 의존할 수 있습니다.Your code might rely on 3rd party libraries compiled for a specific version of Visual C++. 또는 Visual C++의 특정 이전 버전을 대상으로 지정해야 하는 타사용 라이브러리를 생성할 수 있습니다.Or you may produce libraries for others that must target a specific older version of Visual C++.

다행히도 Visual Studio 2017 및 Visual Studio 2015를 사용하여 이전 컴파일러 도구 집합 및 라이브러리를 대상으로 지정하는 프로젝트를 빌드할 수 있습니다.Fortunately, you can use Visual Studio 2017 and Visual Studio 2015 to build projects that target older compiler toolsets and libraries. IDE에서 새 기능을 이용하기 위해 Visual Studio 2010, Visual Studio 2012, Visual Studio 2013 또는 Visual Studio 2015 프로젝트를 업그레이드할 필요가 없습니다.You don't have to upgrade a Visual Studio 2010, Visual Studio 2012, Visual Studio 2013, or Visual Studio 2015 project to take advantage of new features in the IDE:

  • 새 C++ 리팩터링 기능 및 편집기 실험 기능New C++ refactoring capabilities and editor experimental features
  • 새로운 진단 도구 디버거 창 및 오류 목록 창New Diagnostics tools debugger window and Error List window
  • 새로운 중단점, 예외 창 및 새 PerfTipsRevamped breakpoints, exceptions window and new PerfTips
  • 새 코드 탐색 및 검색 도구New code navigation and search tools
  • 새 C++ 빠른 픽스 및 Productivity Power Tools 확장.New C++ Quick fixes and the Productivity Power Tools extensions.

Visual Studio 2008 프로젝트를 대상으로 지정할 수도 있지만 변경이 필요합니다.You can also target Visual Studio 2008 projects, but they can't be used unchanged. 자세한 내용은 Visual Studio 2008에 대한 지침 섹션을 참조하세요.For details, see the Instructions for Visual Studio 2008 section.

최신 버전의 Visual Studio에서는 프로젝트의 네이티브 멀티 타기팅 및 라운드트립을 지원합니다.The latest versions of Visual Studio support native multi-targeting and round-tripping of projects. 네이티브 멀티 타기팅은 이전 버전의 Visual Studio에서 설치된 도구 집합을 사용하여 빌드되는 최신 IDE의 기능입니다.Native multi-targeting is the ability of the latest IDE to build using toolsets installed by previous versions of Visual Studio. 라운드트립은 프로젝트를 변경하지 않고 이전 IDE 버전에서 만들어진 프로젝트를 로드하는 최신 IDE의 기능입니다.Round-tripping is the ability of the latest IDE to load projects created by a previous IDE version without making any changes to the project. 기존 버전과 함께 최신 버전의 Visual Studio를 단계별로 설치할 경우 기존 버전의 컴파일러 및 도구와 함께 새 버전의 IDE를 사용하여 프로젝트를 빌드할 수 있습니다.If you install the latest version of Visual Studio side-by-side with your existing version, you can use the new version of the IDE with the compiler and tools from the existing version to build your projects. 팀의 다른 구성원이 이전 버전의 Visual Studio에서 프로젝트를 계속 사용할 수 있습니다.Other members of your team can continue to use the projects in the older version of Visual Studio.

이전 도구 집합을 사용할 경우 대부분의 최신 IDE 기능을 이용할 수 있지만 C++ 컴파일러, 라이브러리 및 빌드 도구의 최신 고급 기능을 이용할 수 없습니다.When you use an older toolset, you can take advantage of many of the latest IDE features, but not the latest advances in the C++ compiler, libraries and build tools. 예를 들어 새 언어 규칙 향상, 새 디버깅 및 코드 분석 기능을 사용하거나 최신 도구 집합의 더 빠른 빌드 처리량을 얻을 수 없습니다.For example, you won't be able to use the new language conformance improvements, new debugging and code analysis features, or get the faster build throughput of the latest toolset. 이전 도구 집합과 호환되지 않는 몇몇 IDE 기능도 있습니다.There are also some IDE features that are incompatible with older toolsets. 예를 들어 메모리 프로파일러에 형식 정보가 없을 수 있고, 리팩터링 작업 원시 문자열 리터럴로 변환에서는 Visual Studio 2012 또는 이전 도구 집합을 사용할 경우 컴파일되지 않는 C++11 규격 코드를 생성합니다.For example, type information may be missing in the Memory Profiler, and the refactoring operation Convert to Raw string literals generates C++11-compliant code that won't compile when you use Visual Studio 2012 or older toolsets.

Visual Studio에서 네이티브 멀티 타기팅을 사용하는 방법How to use native multi-targeting in Visual Studio

이전 버전과 함께 Visual Studio를 단계별로 설치한 후 새 버전의 Visual Studio에서 기존 프로젝트를 엽니다.Once you have installed Visual Studio side-by-side with your older version, open your existing project in the new version of Visual Studio. 프로젝트가 로드되면 최신 C++ 컴파일러 및 라이브러리를 사용하도록 프로젝트를 업그레이드할지 묻는 메시지가 표시됩니다.When the project is loaded, Visual Studio asks you whether you want to upgrade it to use the latest C++ compiler and libraries. 프로젝트에서 이전 컴파일러 및 라이브러리를 유지하고자 하므로 취소 단추를 선택합니다.Since you want the project to keep the older compiler and libraries, choose the Cancel button.

Visual Studio는 프로젝트를 지속적으로 업그레이드합니다.Visual Studio is persistent about upgrading your project. 프로젝트를 로드할 때마다 업그레이드 대화 상자가 표시되지 않게 하려면 프로젝트에서 다음 속성을 정의하거나 프로젝트가 가져오는 .props 또는 .targets 파일에서 정의할 수 있습니다.To avoid seeing the upgrade dialog every time you load the project, you can define the following property in your projects, or in the .props or .targets files they import:

<VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

프로젝트를 업그레이드하려면 이 속성을 제거해야 합니다.You must remove this property when you want to upgrade your projects.

업그레이드하지 않도록 선택하면 Visual Studio에서는 솔루션 또는 프로젝트 파일을 변경하지 않습니다.If you choose not to upgrade, Visual Studio makes no changes to your solution or project files. 프로젝트를 빌드할 때 생성된 이진 파일은 이전 버전의 Visual Studio를 통해 빌드한 이진 파일과 완전히 호환됩니다.When you build the project, the generated binaries are fully compatible with the ones you built with the older version of Visual Studio. 이는 Visual Studio에서는 같은 C++ 컴파일러를 사용하고 이전 IDE와 함께 제공된 같은 라이브러리를 연결하기 때문입니다.This is because Visual Studio uses the same C++ compiler and links the same libraries that your older IDE shipped with. 또한 취소를 선택할 경우 이전 Visual Studio 버전이 계속 설치되어 있음을 경고하는 업그레이드 대화 상자가 표시되는 이유이기도 합니다.That is also why the upgrade dialog warns you to keep the older Visual Studio version installed if you choose Cancel.

Visual Studio 2008에 대한 지침Instructions for Visual Studio 2008

Visual Studio 2008에는 VCBuild라는 C++에 대한 자체 전용 빌드 시스템이 있었습니다.Visual Studio 2008 had its own dedicated build system for C++ called VCBuild. Visual Studio 2010부터 Visual C++ 프로젝트는 MSBuild를 사용하도록 변경되었습니다.Starting in Visual Studio 2010, Visual C++ projects were changed to use MSBuild. 즉, 최신 버전의 Visual Studio에서 Visual Studio 2008 프로젝트를 빌드하려면 업데이트 단계를 거쳐야 합니다.This means that you must go through an update step to build your Visual Studio 2008 projects in the latest version of Visual Studio. 업데이트된 프로젝트는 Visual Studio 2008 IDE를 사용하여 만들어진 이진 파일과 완전히 호환되는 이진 파일을 생성합니다.Your updated project still generates binaries that are fully compatible with binaries created using the Visual Studio 2008 IDE.

먼저 현재 버전의 Visual Studio 외에 Visual Studio 2010을 Visual Studio 2008과 같은 컴퓨터에 설치해야 합니다.First, in addition to the current version of Visual Studio, you must install Visual Studio 2010 on the same computer as Visual Studio 2008. Visual Studio 2008 프로젝트를 대상으로 지정하는 데 필요한 MSBuild 스크립트는 Visual Studio 2010에서만 설치합니다.Only Visual Studio 2010 installs the MSBuild scripts that are required to target Visual Studio 2008 projects.

다음으로 Visual Studio 2008 솔루션 및 프로젝트를 현재 버전의 Visual Studio로 업데이트해야 합니다.Next, you must update your Visual Studio 2008 solution and projects to the current version of Visual Studio. 업그레이드하기 전에 프로젝트 및 솔루션 파일의 백업을 만드는 것이 좋습니다.We recommend you create a backup of your projects and solution files before the upgrade. 업그레이드 프로세스를 시작하려면 현재 버전의 Visual Studio에서 솔루션을 엽니다.To start the upgrade process, open the solution in the current version of Visual Studio. 업그레이드 프롬프트가 표시되면 제공된 정보를 검토하고 확인을 선택하여 업그레이드를 시작합니다.When you get the upgrade prompt, review the information presented, and then choose OK to start the upgrade. 솔루션에 두 개 이상의 프로젝트가 있는 경우 이를 업데이트해야 합니다. 마법사에서 기존 .vcproj 파일과 함께 새 .vcxproj 프로젝트 파일을 단계별로 만듭니다.If you have more than one project in the solution, you must update The wizard creates new .vcxproj project files side-by-side with the existing .vcproj files. 원래 .sln 파일의 복사본이 있는 경우 업그레이드가 Visual Studio 2008 프로젝트에 다른 영향을 미치지 않습니다.As long as you also have a copy of the original .sln file, the upgrade has no other impact on your existing Visual Studio 2008 projects.

업그레이드가 완료될 때 로그 보고서에 프로젝트에 대한 오류 또는 경고가 있으면 이를 주의해서 검토합니다.When the upgrade completes, if the log report has errors or warnings for any of your projects, review them carefully. VCBuild에서 MSBuild로 변환하면 문제가 발생할 수 있습니다.The conversion from VCBuild to MSBuild can cause issues. 보고서에 나열된 작업 항목을 이해하고 구현해야 합니다.Make sure you understand and implement any action items listed in the report. VCBuild에서 MSBuild로 변환할 때 발생할 수 있는 업그레이드 로그 보고서 및 문제에 대한 자세한 내용은 이 C++ Native Multi-Targeting(C++ 네이티브 멀티 타기팅) 블로그 게시물을 참조하세요.For more information on the upgrade log report and issues that may occur when converting VCBuild to MSBuild, see this C++ Native Multi-Targeting blog post.

프로젝트 업그레이드가 완료되고 로그 파일에서 문제를 수정한 경우 솔루션은 실제로 최신 도구 집합을 대상으로 지정합니다.When the project upgrade is completed, and you have corrected any issues in the log file, your solution actually targets the latest toolset. 마지막 단계로 Visual Studio 2008 도구 집합을 사용하도록 솔루션에서 각 프로젝트에 대한 속성을 변경합니다.As the final step, change the properties for each project in the solution to use the Visual Studio 2008 toolset. 솔루션이 현재 버전의 Visual Studio에 로드된 경우 솔루션의 각 프로젝트에 대해 프로젝트 속성 페이지 대화 상자를 엽니다. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.With the solution loaded in the current version of Visual Studio, for each project in the solution, open the Project Property Pages dialog box: Right-click on the project in Solution Explorer and then select Properties. 속성 페이지 대화 상자에서 구성 드롭다운 값을 모든 구성으로 변경합니다.In the Property Pages dialog box, change the Configuration drop-down value to All Configurations. 구성 속성에서 일반을 선택하고 플랫폼 도구 집합Visual Studio 2008(v90)로 변경합니다.In Configuration Properties, select General, and then change Platform Toolset to Visual Studio 2008 (v90).

이와 같이 변경한 후 Visual Studio 2008 컴파일러 및 라이브러리는 현재 버전의 Visual Studio에서 솔루션을 빌드할 때 프로젝트 이진 파일을 생성하는 데 사용됩니다.After this change, the Visual Studio 2008 compiler and libraries are used to generate project binaries when you build the solution in the current version of Visual Studio.

이전 Visual Studio 도구 집합 설치Install an older Visual Studio toolset

업그레이드할 수 없거나 업그레이드하지 않으려는 이전 Visual C++ 프로젝트가 있지만 프로젝트와 일치하는 플랫폼 도구 집합 버전이 없을 수 있습니다.You may have an old Visual C++ project that you can't or don't want to upgrade, but not the platform toolset version that matches your project. 이 경우 도구 집합을 얻으려면 필요한 버전의 무료 Visual Studio Community 또는 Express 버전을 설치합니다.In this case, to get the toolset, you can install the free Visual Studio Community or Express edition of the version you need. Visual Studio 2008부터 Visual Studio의 모든 버전은 현재 Visual Studio에서 해당 버전을 대상으로 지정하는 데 필요한 컴파일러, 도구 및 라이브러리를 설치할 수 있습니다.Every version of Visual Studio from Visual Studio 2008 on can install the compiler, tools, and libraries you need to target that version from the current Visual Studio. Microsoft 다운로드 센터를 검색하여 특정 버전의 Visual Studio를 찾고 다운로드합니다.Search the Microsoft Download Center to find and download a particular version of Visual Studio. 설치하는 동안 C++ 설치 옵션을 선택해야 합니다.Make sure you choose the C++ installation options during setup. 설치가 완료되면 업데이트를 설치할 Visual Studio의 해당 버전을 실행합니다.After setup completes, run that version of Visual Studio to install any updates. 또한 필요한 Windows 업데이트 변경 내용이 있는지 확인합니다.Also check for any Windows Update changes that might be required. 모든 업데이트를 받기 위해 이 업데이트 확인 프로세스를 두 번 이상 반복해야 할 수 있습니다.This update check process may need to be repeated more than once to get every update.

다음은 필요할 수 있는 일부 Visual Studio 다운로드입니다.Here are some of the Visual Studio downloads you might need:

이러한 제품이 설치되면 속성 페이지 대화 상자의 플랫폼 도구 집합 속성 드롭다운이 사용 가능한 도구 집합을 표시하도록 자동으로 업데이트됩니다.When these products are installed, the Platform Toolset property drop-down in the Property Pages dialog box is automatically updated to show the available toolsets. 이제 최신 버전의 Visual Studio를 사용하여 이전 버전의 도구 집합을 위한 프로젝트를 변환하거나 업그레이드하지 않고 빌드할 수 있습니다.You can now use the latest version of Visual Studio to build projects for those older versions of the toolset without converting or upgrading them.

참고 항목See Also

이전 버전의 Visual C++에서 프로젝트 업그레이드Upgrading Projects from Earlier Versions of Visual C++
Visual Studio 2017의 C++ 규칙 향상C++ conformance improvements in Visual Studio 2017