방법: 자동 바인딩 리디렉션을 사용하거나 사용하지 않도록 설정

Visual Studio에서 .NET Framework 4.5.1 이상 버전을 대상으로 하는 데스크톱 앱을 컴파일하는 경우 바인딩 리디렉션이 앱 구성 파일에 자동으로 추가되어 어셈블리 통합을 재정의할 수 있습니다. 수동으로 바인딩 리디렉션을 응용 프로그램의 구성 파일에 지정할 지라도 응용 프로그램 또는 해당 구성 요소가 동일 어셈블리의 두 개 이상의 버전을 참조할 경우 바인딩 리디렉션을 추가합니다. 자동 바인딩 리디렉션 기능은 .NET Framework 4.5.1 이상 버전을 대상으로 하는 데스크톱 앱에 영향을 줍니다. 자동 생성된 바인딩 리디렉션을 명시적으로 사용하거나 사용하지 않도록 설정한 경우가 아니면 기존 프로젝트를 업그레이드하면 기능이 자동으로 사용하도록 설정됩니다.

웹앱의 경우 Visual Studio에서 바인딩 충돌이 발생하면 충돌 해결을 위해 바인딩 리디렉션을 추가하라는 메시지가 표시됩니다.

이전 버전의 .NET Framework(4.5 이하)를 대상으로 하는 기존 앱에 대해 자동 바인딩 리디렉션을 사용하도록 설정할 수 있습니다. 바인딩 리디렉션을 수동으로 작성하려는 경우 이 기능을 사용하지 않도록 설정할 수 있습니다.

Important

Visual Studio 2022부터는 이 버전이 더 이상 지원되지 않기 때문에 Visual Studio에 .NET Framework 4.0~4.5.1의 .NET Framework 구성 요소가 더 이상 포함되지 않습니다. Visual Studio 2022 이상 버전에서는 .NET Framework 4.5.1을 통해 .NET Framework 4.0을 대상으로 하는 앱을 빌드할 수 없습니다. 이 앱을 계속 빌드하는 데는 Visual Studio 2019 이하 버전을 사용할 수 있습니다.

데스크톱 앱에서 자동 바인딩 리디렉션을 사용하지 않도록 설정

자동 바인딩 리디렉션은 .NET Framework 4.5.1 이상 버전을 대상으로 하는 Windows 데스크톱 앱에 대해 기본적으로 사용하도록 설정됩니다. 바인딩 리디렉션은 앱이 컴파일될 때 출력 구성(app.config) 파일에 추가됩니다. 이 리디렉션은 다른 경우에 발생할 수 있는 어셈블리 통합을 재정의합니다. 소스 app.config 파일은 수정되지 않습니다. 앱의 프로젝트 파일을 수정하거나 Visual Studio의 프로젝트 속성에서 확인란을 선택 취소하여 이 기능을 사용하지 않도록 설정할 수 있습니다.

프로젝트 속성을 통해 사용하지 않도록 설정

Visual Studio 2017 버전 15.7 이상이 있는 경우 프로젝트의 속성 페이지에서 자동 생성된 바인딩 리디렉션을 사용하지 않도록 설정할 수 있습니다.

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  2. 애플리케이션 페이지에서 바인딩 리디렉션 자동 생성 옵션의 선택을 취소합니다.

    이 옵션이 표시되지 않으면 프로젝트 파일에서 해당 기능을 수동으로 사용하지 않도록 설정해야 합니다.

  3. Ctrl+S를 눌러 변경 내용을 저장합니다.

프로젝트 파일에서 수동으로 사용하지 않도록 설정

  1. 다음 방법 중 하나를 사용하여 편집할 프로젝트 파일을 엽니다.

    • Visual Studio에서 솔루션 탐색기에 있는 프로젝트를 선택한 다음, 바로 가기 메뉴에서 파일 탐색기에서 폴더 열기를 선택합니다. 파일 탐색기에서 프로젝트(.csproj 또는 .vbproj) 파일을 찾은 후 메모장에서 엽니다.
    • Visual Studio의 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 프로젝트 업로드를 선택합니다. 언로드된 프로젝트를 다시 마우스 오른쪽 단추로 클릭한 다음, [projectname.csproj] 편집을 선택합니다.
  2. 프로젝트 파일에서 다음 속성 항목을 찾습니다.

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    
  3. truefalse로 변경합니다.

    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
    

자동 바인딩 리디렉션을 수동으로 사용하도록 설정

이전 버전의 .NET Framework를 대상으로 하는 기존 앱에서나, 리디렉션을 추가하라는 메시지가 자동으로 나타나지 않는 경우에 자동 바인딩 리디렉션을 사용하도록 설정할 수 있습니다. 최신 버전의 .NET Framework를 대상으로 하지만 리디렉션을 추가하라는 메시지가 자동으로 나타나지 않는 경우 어셈블리를 다시 매핑하도록 제안하는 빌드 출력이 표시될 것입니다.

  1. 다음 방법 중 하나를 사용하여 편집할 프로젝트 파일을 엽니다.

    • Visual Studio에서 솔루션 탐색기에 있는 프로젝트를 선택한 다음, 바로 가기 메뉴에서 파일 탐색기에서 폴더 열기를 선택합니다. 파일 탐색기에서 프로젝트(.csproj 또는 .vbproj) 파일을 찾은 후 메모장에서 엽니다.
    • Visual Studio의 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 프로젝트 업로드를 선택합니다. 언로드된 프로젝트를 다시 마우스 오른쪽 단추로 클릭한 다음, [projectname.csproj] 편집을 선택합니다.
  2. 다음 요소를 첫 번째 구성 속성 그룹(<PropertyGroup> 태그 아래)에 추가합니다.

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    

    다음은 요소가 삽입된 예제 프로젝트 파일을 보여 줍니다.

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
      <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
        <ProjectGuid>{123334}</ProjectGuid>
        ...
        <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      </PropertyGroup>
      ...
    </Project>
    
  3. 응용 프로그램을 컴파일합니다.

웹앱에서 자동 바인딩 리디렉션을 사용하도록 설정

자동 바인딩 리디렉션은 웹 응용 프로그램마다 다르게 구현됩니다. 웹 애플리케이션에 대한 원본 구성(web.config) 파일을 수정해야 하기 때문에 구성 파일에 바인딩 리디렉션은 자동으로 추가되지 않습니다. 하지만 Visual Studio는 바인딩 충돌을 경고하고 충돌 해결을 위해 바인딩 리디렉션을 추가할 수 있습니다. 바인딩 리디렉션을 추가하라는 메시지가 항상 표시되므로 웹앱에 대해 이 기능을 명시적으로 사용하지 않도록 설정할 필요가 없습니다.

web.config 파일에 바인딩 리디렉션을 추가하려면

  1. Visual Studio에서 응용 프로그램을 컴파일하고 빌드 경고를 확인합니다.

    Build warning for assembly reference conflicts.

  2. 어셈블리 바인딩 충돌이 있을 경우 경고가 나타납니다. 경고를 두 번 클릭하거나 경고를 선택하고 Enter 키를 누릅니다.

    필요한 바인딩 리디렉션을 소스 web.config 파일에 자동으로 추가할 수 있는 대화 상자가 나타납니다.

    Binding redirect permission dialog.

참고 항목