다음을 통해 공유


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

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비트 플랫폼을 모두 대상으로 지정할 수 있습니다.

Configuration Manager를 사용하는 대상 플랫폼

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

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

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

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

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

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

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

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

    2. 형식 또는 새 플랫폼 목록에서 원하는 플랫폼(프로세서 아키텍처)을 선택합니다. 예를 들면 다음과 같습니다ARM64.

      새 플랫폼 선택을 보여 주는 스크린샷

      비고

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

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

새 솔루션 플랫폼 및 프로젝트 플랫폼을 보여 주는 스크린샷

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

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

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

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

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

    2. 형식 또는 새 플랫폼 목록에서 원하는 플랫폼(프로세서 아키텍처)을 선택합니다. 예를 들면 다음과 같습니다x64.

      비고

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

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

비고

Win32 플랫폼 이름은 C++ 프로젝트에 사용되며 x86을 의미합니다. Visual Studio는 프로젝트 수준 플랫폼과 솔루션 수준 플랫폼을 모두 고려하며 프로젝트 플랫폼은 언어별 프로젝트 시스템에서 제공됩니다. C++ 프로젝트는 Win32x64를 사용하지만 솔루션 플랫폼은 x86x64를 사용합니다. 솔루션 구성으로 x86 을 선택하면 Visual Studio에서 C++ 프로젝트에 대한 Win32 플랫폼을 선택합니다. 프로젝트 수준 플랫폼 및 솔루션 수준 플랫폼 설정을 모두 보려면 Configuration Manager 를 열고 두 플랫폼 설정을 확인합니다. 솔루션 수준 플랫폼은 활성 솔루션 플랫폼 드롭다운에 표시되며 표에는 각 프로젝트에 대한 프로젝트 수준 플랫폼이 표시됩니다. 솔루션 플랫폼 및 프로젝트 플랫폼을 보여 주는 스크린샷

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

또한 프로젝트 디자이너 또는 프로젝트 속성 UI는 프로젝트를 사용하여 다양한 플랫폼을 대상으로 하는 방법을 제공합니다. 새 솔루션 플랫폼 대화 상자의 목록에 포함된 플랫폼 중 하나를 선택하는 것이 솔루션에 적합하지 않은 경우 사용자 지정 구성 이름을 만들고 프로젝트 속성에서 설정을 수정하여 올바른 플랫폼을 대상으로 지정할 수 있습니다.

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

32비트 설정 선호

프로젝트 디자이너의 빌드 페이지에 있는 32비트 선호 설정은 .NET Framework 4.5 이상 프로젝트에서 AnyCPU 구성을 빌드하려고 하면서, 32비트 및 64비트 모드를 모두 지원하는 플랫폼에서 실행될 때 애플리케이션을 32비트 모드로 실행하고자 하는 경우를 처리합니다. 확인란 PlatformTarget 을 사용하도록 설정하면 빌드 속성이 .로 anycpu32bitpreferred설정됩니다. C#용 PlatformTarget 및 Visual Basic용 /platform 에 대한 설명을 참조하세요.

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

경우에 따라 일부 사용자 지정 구성을 위해 프로젝트 파일을 수동으로 편집해야 합니다. 예를 들어 서로 다른 두 플랫폼에 대해 다른 참조 또는 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이 있습니다. 프로젝트 파일의 최상위 RegisterAssemblyMSBuildArchitecture 요소에 추가하여 x86을 원하는 플랫폼 아키텍처(예: x64 또는 PropertyGroup)로 설정할 수 있습니다.

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 프로젝트 파일 스키마 참조를 참조하세요.