플랫폼을 대상으로 한 프로젝트 구성

Visual Studio를 사용하면 Arm64 및 기타 플랫폼을 비롯한 다양한 플랫폼(프로세서 아키텍처)을 대상으로 하는 애플리케이션 빌드를 설정할 수 있습니다. 해당 대상 플랫폼에 대해 빌드하기 위해 플랫폼에서 Visual Studio를 실행할 필요가 없습니다. Visual Studio의 Arm64 지원에 대한 자세한 내용은 ARM 기반 디바이스의 Visual Studio를 참조하세요. .NET 개발을 위한 64비트 플랫폼 지원은 64비트 애플리케이션을 참조하세요.

참고 항목

Visual Studio 2022는 64비트 애플리케이션으로 실행됩니다. Visual Studio에서 프로젝트의 대상으로 지정할 수 있는 플랫폼과는 완전히 별개입니다. 모든 버전의 Visual Studio에서 32비트 및 64비트 플랫폼을 대상으로 지정할 수 있습니다.

Visual Studio를 사용하면 x86 및 x64와 같은 다양한 플랫폼(프로세서 아키텍처)을 대상으로 하는 애플리케이션 빌드를 설정할 수 있습니다. .NET 개발을 위한 64비트 플랫폼 지원은 64비트 애플리케이션을 참조하세요.

참고 항목

Visual Studio는 32비트 애플리케이션으로 실행됩니다. Visual Studio에서 프로젝트의 대상으로 지정할 수 있는 플랫폼과는 완전히 별개입니다. 모든 버전의 Visual Studio에서 32비트 및 64비트 플랫폼을 대상으로 지정할 수 있습니다.

구성 관리자에서 대상 플랫폼 지정

구성 관리자는 프로젝트의 대상이 될 새 플랫폼을 신속하게 추가할 수 있는 방법을 제공합니다. Visual Studio에 포함된 플랫폼 중 하나를 선택하면 선택한 플랫폼에 대한 프로젝트를 빌드하도록 구성이 설정됩니다.

네이티브 C++ 프로젝트에서 일부 플랫폼을 대상으로 하려면 플랫폼용 빌드 도구를 설치해야 합니다. x86 및 x64 플랫폼용 C++ 빌드 도구는 기본 C++ 워크로드와 함께 설치됩니다. Arm64와 같은 다른 프로세서 아키텍처를 대상으로 하는 경우 계속하기 전에 Visual Studio 설치 관리자를 사용하여 플랫폼용 빌드 도구를 설치해야 합니다. Visual Studio 수정을 참조하세요. Arm64를 대상으로 하기 위해 Arm64 디바이스에서 Visual Studio를 실행할 필요가 없습니다. Arm64의 경우 Arm64 빌드 도구 또는 ARM64EC 빌드 도구를 설치할 수 있습니다. Arm64 Visual Studio를 참조하세요.

.NET 개발의 경우 Arm64 플랫폼을 대상으로 하려면 .NET 6 이상이 필요합니다. Arm64 및 x64용 macOS 11 및 Windows 11에 대한 .NET 지원을 참조하세요.

Arm64 및 기타 플랫폼을 대상으로 하는 프로젝트를 구성하려면

  1. 메뉴 모음에서 빌드>구성 관리자를 선택합니다.

  2. 활성 솔루션 플랫폼 목록에서 대상으로 지정할 솔루션으로 플랫폼을 선택한 다음 닫기 단추를 선택합니다.

    1. 활성 솔루션 플랫폼 목록에 원하는 플랫폼이 없는 경우 새로 만들기를 선택합니다. 특정 플랫폼용 도구를 설치한 후 해당 플랫폼을 대상으로 하는 새 솔루션 및 프로젝트 구성을 추가할 수 있습니다.

      새 솔루션 플랫폼 대화 상자가 나타납니다.

    2. 새 플랫폼 입력 또는 선택 목록에서 원하는 플랫폼(프로세서 아키텍처)을 선택합니다(예: ARM64).

      Screenshot showing choosing a new platform.

      참고 항목

      구성의 새 이름을 지정한 경우 프로젝트 디자이너에서 설정을 수정하여 올바른 플랫폼을 대상으로 지정해야 합니다.

    3. 현재 플랫폼 구성에서 설정을 복사하려면 해당 설정을 선택한 다음 확인 단추를 선택합니다.

Screenshot showing the new solution platform and project platform

다른 플랫폼을 대상으로 하는 프로젝트를 구성하려면

  1. 메뉴 모음에서 빌드>구성 관리자를 선택합니다.

  2. 활성 솔루션 플랫폼 목록에서 대상으로 지정할 솔루션으로 플랫폼을 선택한 다음 닫기 단추를 선택합니다.

    1. 활성 솔루션 플랫폼 목록에 원하는 플랫폼이 없는 경우 새로 만들기를 선택합니다. 특정 플랫폼용 도구를 설치한 후 해당 플랫폼을 대상으로 하는 새 솔루션 및 프로젝트 구성을 추가할 수 있습니다.

      새 솔루션 플랫폼 대화 상자가 나타납니다.

    2. 새 플랫폼 입력 또는 선택 목록에서 원하는 플랫폼(프로세서 아키텍처)을 선택합니다(예: x64).

      참고 항목

      구성의 새 이름을 지정한 경우 프로젝트 디자이너에서 설정을 수정하여 올바른 플랫폼을 대상으로 지정해야 합니다.

    3. 현재 플랫폼 구성에서 설정을 복사하려면 해당 설정을 선택한 다음 확인 단추를 선택합니다.

참고 항목

Win32 플랫폼 이름은 C++ 프로젝트에 사용되며 x86을 의미합니다. Visual Studio는 프로젝트 수준 플랫폼과 솔루션 수준 플랫폼을 모두 고려하며, 프로젝트 플랫폼은 언어별 프로젝트 시스템에서 제공됩니다. C++ 프로젝트는 Win32x64를 사용하지만 솔루션 플랫폼은 x86x64를 사용합니다. x86을 솔루션 구성으로 선택하는 경우 Visual Studio는 C++ 프로젝트에 Win32 플랫폼을 선택합니다. 프로젝트 수준 플랫폼과 솔루션 수준 플랫폼 설정을 모두 보려면 구성 관리자를 열고 두 플랫폼 설정을 확인합니다. 솔루션 수준 플랫폼은 활성 솔루션 플랫폼 드롭다운에 표시되며, 표에는 각 프로젝트에 대한 프로젝트 수준 플랫폼이 표시됩니다. Screenshot showing solution platform and project platform

프로젝트 디자이너 또는 프로젝트 속성 UI의 대상 플랫폼

또한 프로젝트 디자이너 또는 프로젝트 속성 UI는 프로젝트에서 다양한 플랫폼을 대상으로 하는 방법을 제공합니다. 사용자의 솔루션에 대해 새 솔루션 플랫폼 대화 상자의 목록에 있는 플랫폼 중 하나를 선택할 수 없는 경우, 사용자 지정 구성 이름을 만들고 프로젝트 디자이너에서 원하는 플랫폼을 대상으로 하도록 설정을 수정할 수 있습니다.

이 작업을 수행하는 방법은 사용 중인 프로그래밍 언어에 따라 다릅니다. 자세한 내용은 다음 링크를 확인하세요.

수동으로 프로젝트 파일 편집

일부 사용자 지정 구성에 대한 프로젝트 파일을 수동으로 편집해야 하는 경우가 있습니다. 예를 들어 두 개의 서로 다른 플랫폼에 대해 서로 다른 참조 또는 COM에 노출하기 위해 특정 플랫폼에 등록해야 하는 어셈블리와 같이 IDE에서 지정할 수 없는 조건이 있는 경우가 있습니다. 프로젝트 파일을 처리하는 도구는 MSBuild입니다.

주의

Visual Studio에서 사용 중인 C++ 프로젝트 파일을 수동으로 편집하는 것은 권장되지 않습니다.

COM 등록

.NET 어셈블리를 빌드하고 COM에 노출하는 경우 Visual Studio는 각 플랫폼 아키텍처(예 x86 : 및)에 대해 서로 다른 레지스트리 위치가 있기 때문에 특정 플랫폼 아키텍처에 x64어셈블리를 등록합니다. 어셈블리가 이미 특정 플랫폼을 대상으로 하는 경우 해당 플랫폼이 사용되지만, 빌드된 Any CPU.NET 어셈블리를 등록하는 경우 MSBuild는 기본적으로 MSBuild의 현재 런타임에 등록합니다. Visual Studio x64 에서 빌드하는 경우 Visual Studio 2022 이상 및 x86 Visual Studio 2019 이하에 있습니다. 이 문서의 앞에서 설명한 방법을 사용하여 플랫폼 아키텍처를 설정하거나 프로젝트 파일에서 다른 PlatformTarget 항목을 지정하는 경우 MSBuild는 등록 시 이를 준수합니다. 이 동작 RegisterAssemblyMSBuildArchitecture을 재정의하도록 설정할 수 있는 속성이 있습니다. 프로젝트 파일의 최상위 PropertyGroup 요소에 추가하여 원하는 플랫폼 아키텍처(예: x86 또는x64)로 설정할 RegisterAssemblyMSBuildArchitecture 수 있습니다.

x86 및 x64 어셈블리 및 DLL 참조

x86 및 x64 버전이 모두 포함된 .NET 어셈블리 또는 DLL이 있을 수 있습니다. 이러한 참조를 사용하도록 프로젝트를 설정하려면 먼저 참조를 추가한 다음 프로젝트 파일을 열고 편집하여 구성 및 대상 플랫폼을 모두 참조하는 조건을 포함하는 ItemGroup을 추가합니다. 예를 들어 참조하는 바이너리가 ClassLibrary1이고 디버그 및 릴리스 구성과 x86 및 x64 버전에 대해 서로 다른 경로가 있다고 가정해 보겠습니다. 그러면 다음과 같이 모든 설정 조합이 포함된 네 개의 ItemGroup 요소를 사용합니다.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <Platforms>AnyCPU;x64;x86</Platforms>
  </PropertyGroup>

  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x64\Debug\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>

  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x64\Release\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>

  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x86\Debug\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>
  
  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x86\Release\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>
</Project>

프로젝트 파일에 대한 자세한 내용은 MSBuild 프로젝트 파일 스키마 참조를 참조하세요.