Procedura: Abilitare e disabilitare il reindirizzamento automatico del binding

Quando si compilano app desktop in Visual Studio destinate a .NET Framework 4.5.1 e versioni successive, i reindirizzamenti di binding possono essere aggiunti automaticamente al file di configurazione dell'app per eseguire l'override dell'unificazione dell'assembly. I reindirizzamenti di associazione vengono aggiunti se l'app o i relativi componenti fanno riferimento a più di una versione dello stesso assembly, anche se è possibile specificare manualmente i reindirizzamenti di associazione nel file di configurazione dell'app. La funzionalità di reindirizzamento automatico dell'associazione riguarda le app desktop destinate a .NET Framework 4.5.1 o versione successiva. Se non è stato abilitato o disabilitato in modo esplicito il reindirizzamento dei binding autogenerati e si aggiorna un progetto esistente, la funzionalità viene abilitata automaticamente.

Per le app Web, quando Visual Studio rileva un conflitto di binding, chiede di aggiungere un reindirizzamento di binding per risolvere il conflitto.

È possibile abilitare il reindirizzamento automatico dei binding per le app esistenti destinate alle versioni precedenti di .NET Framework (4.5 e versioni precedenti). È possibile disabilitare questa funzionalità per creare manualmente i reindirizzamenti di binding.

Importante

A partire da Visual Studio 2022, Visual Studio non include più componenti .NET Framework per .NET Framework 4.0 - 4.5.1 perché queste versioni non sono più supportate. Visual Studio 2022 e versioni successive non possono creare app destinate a .NET Framework 4.0 a .NET Framework 4.5.1. Per continuare a compilare queste app, è possibile usare Visual Studio 2019 o una versione precedente.

Disabilitare i reindirizzamenti automatici dei binding nelle app desktop

I reindirizzamenti automatici dei binding sono abilitati per impostazione predefinita per le app desktop di Windows destinate a .NET Framework 4.5.1 e versioni successive. I reindirizzamenti dei binding vengono aggiunti alla configurazione di output (file app.config) quando l'app viene compilata. I reindirizzamenti eseguono l'override dell'unificazione dell'assembly che in caso contrario potrebbe verificarsi. Il file di app.config di origine non viene modificato. È possibile disabilitare questa funzionalità modificando il file di progetto dell'app o deselezionando una casella di controllo nelle proprietà del progetto in Visual Studio.

Disabilitare tramite le proprietà del progetto

Se si dispone di Visual Studio 2017 versione 15.7 o successiva, è possibile disabilitare i reindirizzamenti dei binding generati automaticamente nelle pagine delle proprietà del progetto.

  1. Fare clic con il pulsante destro del mouse in Esplora soluzioni e scegliere Proprietà.

  2. Nella pagina Applicazione deselezionare l'opzione Genera automaticamente i reindirizzamenti dei binding.

    Se l'opzione non viene visualizzata, è necessario disabilitare manualmente la funzionalità nel file di progetto.

  3. Premere CTRL+S per salvare la modifica.

Disabilitare manualmente nel file di progetto

  1. Aprire il file di progetto per modificarlo tramite uno dei metodi seguenti:

    • In Visual Studio selezionare il progetto in Esplora soluzioni, quindi scegliere Apri cartella in Esplora file dal menu di scelta rapida. In Esplora file trovare il file di progetto (con estensione csproj o vbproj) e aprirlo nel Blocco note.
    • In Visual Studio, in Esplora soluzioni selezionare con il pulsante destro del mouse sul progetto e scegliere Scarica progetto. Selezionare di nuovo con il pulsante destro del mouse il progetto scaricato e scegliere Modifica [nomeprogetto.csproj].
  2. Nel file di progetto trovare la voce di proprietà seguente:

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    
  3. Modificare true in false:

    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
    

Abilitare manualmente i reindirizzamenti automatici dei binding

È possibile abilitare i reindirizzamenti automatici dei binding nelle app esistenti destinate alle versioni precedenti di .NET Framework o nei casi in cui non viene richiesto automaticamente di aggiungere un reindirizzamento. Se si ha come destinazione una versione più recente di .NET Framework ma non viene richiesto di aggiungere automaticamente un reindirizzamento, è probabile che si ottenga un output di compilazione che suggerisce di eseguire il nuovo mapping degli assembly.

  1. Aprire il file di progetto per modificarlo tramite uno dei metodi seguenti:

    • In Visual Studio selezionare il progetto in Esplora soluzioni, quindi scegliere Apri cartella in Esplora file dal menu di scelta rapida. In Esplora file trovare il file di progetto (con estensione csproj o vbproj) e aprirlo nel Blocco note.
    • In Visual Studio, in Esplora soluzioni selezionare con il pulsante destro del mouse sul progetto e scegliere Scarica progetto. Selezionare di nuovo con il pulsante destro del mouse il progetto scaricato e scegliere Modifica [nomeprogetto.csproj].
  2. Aggiungere l'elemento seguente al primo gruppo di proprietà di configurazione (sotto il tag >PropertyGroup<):

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    

    Di seguito è illustrato un file di progetto di esempio con l'elemento inserito:

    <?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. Compilare l'app.

Abilitare i reindirizzamenti automatici dei binding nelle app Web

I reindirizzamenti di associazione automatici vengono implementati in modo diverso per le app Web. Poiché il file della configurazione di origine (web.config) deve essere modificata per le app Web, i reindirizzamenti di binding non vengono aggiunti automaticamente al file di configurazione. Visual Studio notifica, tuttavia, eventuali conflitti di associazione ed è possibile aggiungere reindirizzamenti di associazione per risolverli. Poiché viene sempre richiesto di aggiungere reindirizzamenti di binding, non è necessario disabilitare in modo esplicito questa funzionalità per un'app Web.

Per aggiungere reindirizzamenti di binding a un file web.config:

  1. In Visual Studio compilare l'app e cercare eventuali avvisi di compilazione.

    Build warning for assembly reference conflicts.

  2. In caso di conflitti di associazione a livello di assembly, viene visualizzato un avviso. Fare doppio clic sull'avviso oppure selezionare l'avviso e premere INVIO.

    Viene visualizzata una finestra di dialogo che consente di aggiungere automaticamente i reindirizzamenti di binding necessari al file web.config di origine.

    Binding redirect permission dialog.

Vedi anche