方法: 自動バインディング リダイレクトを有効/無効にするHow to: Enable and Disable Automatic Binding Redirection

.NET Framework 4.5.1 以降のバージョンを対象とする Visual Studio でアプリをコンパイルすると、アセンブリの統一をオーバーライドするために、アプリケーション構成ファイルにバインドリダイレクトが自動的に追加される場合があります。When you compile apps in Visual Studio that target the .NET Framework 4.5.1 and later versions, binding redirects may be automatically added to the app configuration file to override assembly unification. アプリの構成ファイルで手動でバインド リダイレクトを指定している場合でも、アプリまたはそのコンポーネントが同じアセンブリの複数バージョンを参照している場合、バインド リダイレクトが追加されます。Binding redirects are added if your app or its components reference more than one version of the same assembly, even if you manually specify binding redirects in the configuration file for your app. 自動バインドリダイレクト機能は、.NET Framework 4.5.1 以降のバージョンを対象とするデスクトップアプリと web アプリに影響します。ただし、web アプリで動作は少し異なります。The automatic binding redirection feature affects desktop apps and web apps that target the .NET Framework 4.5.1 or a later version, although the behavior is slightly different for a web app. 以前のバージョンの .NET Framework を対象とする既存のアプリがある場合は、自動バインドリダイレクトを有効にすることができます。また、バインディングリダイレクトを手動で作成する場合は、この機能を無効にすることもできます。You can enable automatic binding redirection if you have existing apps that target previous versions of the .NET Framework, or you can disable this feature if you want to manually author binding redirects.

デスクトップアプリでの自動バインドリダイレクトを無効にするDisable automatic binding redirects in desktop apps

.NET Framework 4.5.1 以降のバージョンを対象とする Windows デスクトップアプリでは、自動バインドリダイレクトが既定で有効になっています。Automatic binding redirects are enabled by default for Windows desktop apps that target the .NET Framework 4.5.1 and later versions. バインドリダイレクトは、アプリがコンパイルされるときに出力構成 (app.config) ファイルに追加され、それ以外の場合に発生する可能性があるアセンブリの統一をオーバーライドします。The binding redirects are added to the output configuration (app.config) file when the app is compiled and override the assembly unification that might otherwise take place. ソースapp.configファイルは変更されません。The source app.config file is not modified. この機能を無効にするには、アプリのプロジェクトファイルを変更するか、Visual Studio でプロジェクトの [プロパティ] のチェックボックスをオフにします。You can disable this feature by modifying the project file for the app or by deselecting a checkbox in the project's properties in Visual Studio.

プロジェクトのプロパティを使用して無効化Disable through project properties

Visual Studio 2017 バージョン15.7 以降を使用している場合は、プロジェクトのプロパティページで自動生成されたバインドリダイレクトを無効にすることができます。If you have Visual Studio 2017 version 15.7 or later, you can easily disable autogenerated binding redirects in the project's property pages.

  1. ソリューション エクスプローラーでプロジェクトを右クリックして、 [プロパティ] を選択します。Right-click the project in Solution Explorer and select Properties.

  2. [アプリケーション] ページで、 [バインドリダイレクトを自動生成] する オプションをオフにします。On the Application page, uncheck the Auto-generate binding redirects option.

  3. Ctrl+Sキーを押して変更を保存します。Press Ctrl+S to save the change.

プロジェクトファイルで手動で無効にするDisable manually in the project file

  1. 次のいずれかの方法を使用して、プロジェクトファイルを編集用に開きます。Open the project file for editing using one of the following methods:

    • Visual Studio でソリューションエクスプローラーでプロジェクトを選択し、ショートカットメニューの [エクスプローラーでフォルダーを開く] をクリックします。In Visual Studio, select the project in Solution Explorer, and then choose Open Folder in File Explorer from the shortcut menu. ファイルエクスプローラーで、プロジェクト (.csproj または .vbproj) ファイルを見つけ、メモ帳で開きます。In File Explorer, find the project (.csproj or .vbproj) file and open it in Notepad.
    • Visual Studio のソリューションエクスプローラーで、プロジェクトを右クリックし、 [プロジェクトのアンロード] を選択します。In Visual Studio, in Solution Explorer, right-click the project and choose Unload Project. アンロードされたプロジェクトをもう一度右クリックし、[編集] [projectname. .csproj] の順に選択します。Right-click the unloaded project again, and then choose Edit [projectname.csproj].
  2. プロジェクト ファイルで、次のプロパティ エントリを検索します。In the project file, find the following property entry:

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    
  3. truefalse に変更します。Change true to false:

    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
    

自動バインドリダイレクトを手動で有効にするEnable automatic binding redirects manually

以前のバージョンの .NET Framework を対象とする既存のアプリで自動バインドリダイレクトを有効にすることができます。また、自動的にリダイレクトを追加するように求められない場合は、リダイレクトを有効にすることもできます。You can enable automatic binding redirects in existing apps that target older versions of the .NET Framework, or in cases where you're not automatically prompted to add a redirect. 新しいバージョンのフレームワークを対象としていても、自動的にリダイレクトの追加を求めるメッセージが表示されない場合は、アセンブリの再マップを提案するビルド出力が得られる可能性があります。If you're targeting a newer version of the framework but do not get automatically prompted to add a redirect, you'll likely get build output that suggests you remap assemblies.

  1. 次のいずれかの方法を使用して、プロジェクトファイルを編集用に開きます。Open the project file for editing using one of the following methods:

    • Visual Studio でソリューションエクスプローラーでプロジェクトを選択し、ショートカットメニューの [エクスプローラーでフォルダーを開く] をクリックします。In Visual Studio, select the project in Solution Explorer, and then choose Open Folder in File Explorer from the shortcut menu. ファイルエクスプローラーで、プロジェクト (.csproj または .vbproj) ファイルを見つけ、メモ帳で開きます。In File Explorer, find the project (.csproj or .vbproj) file and open it in Notepad.
    • Visual Studio のソリューションエクスプローラーで、プロジェクトを右クリックし、 [プロジェクトのアンロード] を選択します。In Visual Studio, in Solution Explorer, right-click the project and choose Unload Project. アンロードされたプロジェクトをもう一度右クリックし、[編集] [projectname. .csproj] の順に選択します。Right-click the unloaded project again, and then choose Edit [projectname.csproj].
  2. 最初の構成プロパティグループ (PropertyGroup > タグの<下) に次の要素を追加します。Add the following element to the first configuration property group (under the <PropertyGroup> tag):

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    

    要素が挿入されたプロジェクトファイルの例を次に示します。The following shows an example project file with the element inserted:

    <?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. アプリをコンパイルします。Compile your app.

Web アプリで自動バインドリダイレクトを有効にするEnable automatic binding redirects in web apps

自動バインド リダイレクトは、Web アプリでは異なる方法で実装されます。Automatic binding redirects are implemented differently for web apps. ソース構成 (web.config) ファイルは web apps 用に変更する必要があるため、バインドリダイレクトは構成ファイルに自動的に追加されません。Because the source configuration (web.config) file must be modified for web apps, binding redirects are not automatically added to the configuration file. ただし、Visual Studio によってバインドの競合が通知されるため、バインド リダイレクトを追加して競合を解決できます。However, Visual Studio notifies you of binding conflicts, and you can add binding redirects to resolve the conflicts. バインドリダイレクトを追加するように求められるので、web アプリに対してこの機能を明示的に無効にする必要はありません。Because you're always prompted to add binding redirects, you don't need to explicitly disable this feature for a web app.

Web.config ファイルにバインドリダイレクトを追加するには、次のようにします。To add binding redirects to a web.config file:

  1. Visual Studio で、アプリをコンパイルし、ビルドの警告を確認します。In Visual Studio, compile the app, and check for build warnings.

    アセンブリ参照の競合に関するビルド警告Build warning for assembly reference conflicts

  2. アセンブリ バインドの競合がある場合、警告が表示されます。If there are assembly binding conflicts, a warning appears. 警告をダブルクリックするか、警告を選択してenter キーを押します。Double-click the warning, or select the warning and press Enter.

    ソースのweb.configファイルに必要なバインドリダイレクトを自動的に追加できるダイアログボックスが表示されます。A dialog box that enables you to automatically add the necessary binding redirects to the source web.config file appears.

    バインドリダイレクトのアクセス許可ダイアログBinding redirect permission dialog

関連項目See also