Sdílet prostřednictvím


Jak na to: Povolení a zakázání automatických přesměrování vazeb

Poznámka:

Tento článek je specifický pro rozhraní .NET Framework. Nevztahuje se na novější implementace .NET, včetně .NET 6 a novějších verzí.

Když kompilujete desktopové aplikace v sadě Visual Studio, které cílí na rozhraní .NET Framework 4.5.1 a novější verze, můžou se do konfiguračního souboru aplikace automaticky přidat přesměrování vazeb, které přepíší sjednocení sestavení. Přesměrování vazby se přidají, pokud vaše aplikace nebo její komponenty odkazují na více verzí stejného sestavení, a to i v případě, že ručně zadáte přesměrování vazby v konfiguračním souboru pro vaši aplikaci. Funkce automatického přesměrování vazby ovlivňuje desktopové aplikace, které cílí na rozhraní .NET Framework 4.5.1 nebo novější verzi. Pokud jste explicitně nepovolili nebo zakázali automatické přesměrování vazby a upgradujete existující projekt, funkce se automaticky povolí.

Když Visual Studio u webových aplikací narazí na konflikt s vazbou, vyzve vás, abyste přidali přesměrování vazby k vyřešení konfliktu.

Automatické přesměrování vazby můžete povolit pro stávající aplikace, které cílí na předchozí verze rozhraní .NET Framework (4.5 a starší). Tuto funkci můžete zakázat, pokud chcete vytvářet přesměrování vazeb ručně.

Důležité

Počínaje sadou Visual Studio 2022 už Visual Studio neobsahuje komponenty rozhraní .NET Framework pro rozhraní .NET Framework 4.0 – 4.5.1, protože tyto verze už nejsou podporované. Visual Studio 2022 a novější verze nemůžou vytvářet aplikace, které cílí na rozhraní .NET Framework 4.0 až .NET Framework 4.5.1. Pokud chcete tyto aplikace dál vytvářet, můžete použít Visual Studio 2019 nebo starší verzi.

Zakázat automatická přesměrování vazeb v desktopových aplikacích

Automatické přesměrování vazby jsou ve výchozím nastavení povolené pro desktopové aplikace pro Windows, které cílí na rozhraní .NET Framework 4.5.1 a novější verze. Přesměrování vazeb jsou přidána do souboru výstupní konfigurace (app.config) při kompilaci aplikace. Přesměrování přepíší sjednocení sestavení, které by jinak mohlo proběhnout. Zdrojový souborapp.config se nezmění. Tuto funkci můžete zakázat úpravou souboru projektu pro aplikaci nebo zrušením zaškrtnutí políčka ve vlastnostech projektu v sadě Visual Studio.

Zakázat prostřednictvím vlastností projektu

Pokud máte Visual Studio 2017 verze 15.7 nebo novější, můžete na stránkách vlastností projektu zakázat automaticky generované přesměrování vazeb.

  1. Klikněte pravým tlačítkem myši na projekt v Průzkumník řešení a vyberte Vlastnosti.

  2. Na stránce Aplikace zrušte zaškrtnutí políčka Automatické generování přesměrování vazeb.

    Pokud možnost nevidíte, budete muset tuto funkci v souboru projektu zakázat ručně .

  3. Stisknutím kláves Ctrl+S uložte změnu.

Zakázat ručně v souboru projektu

  1. Otevřete soubor projektu pro úpravy pomocí jedné z následujících metod:

    • Ve Visual Studiu vyberte projekt v Průzkumníku řešení a v místní nabídce zvolte Otevřít složku v Průzkumníku souborů. V Průzkumníku souborů najděte soubor projektu (.csproj nebo .vbproj) a otevřete ho v Poznámkovém bloku.
    • V sadě Visual Studio v Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a zvolte Uvolnit projekt. Znovu klikněte pravým tlačítkem myši na uvolněný projekt a pak zvolte Upravit [název_projektu.csproj].
  2. V souboru projektu vyhledejte následující položku vlastnosti:

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    
  3. Změnit true na false:

    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
    

Ručně povolit automatická přesměrování vazeb

Automatické přesměrování vazeb můžete povolit v existujících aplikacích, které cílí na starší verze rozhraní .NET Framework, nebo v případech, kdy se automaticky nezobrazí výzva k přidání přesměrování. Pokud cílíte na novější verzi rozhraní .NET Framework, ale nezobrazí se automaticky výzva k přidání přesměrování, pravděpodobně získáte výstup sestavení, který navrhne přemapování sestavení.

  1. Otevřete soubor projektu pro úpravy pomocí jedné z následujících metod:

    • V sadě Visual Studio vyberte projekt v Průzkumníku řešení a v místní nabídce zvolte Otevřít složku v Průzkumníku souborů. V Průzkumníku souborů najděte soubor projektu (.csproj nebo .vbproj) a otevřete ho v Poznámkovém bloku.
    • V sadě Visual Studio v Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a zvolte Uvolnit projekt. Znovu klikněte pravým tlačítkem myši na uvolněný projekt a pak zvolte Upravit [název_projektu.csproj].
  2. Do první skupiny vlastností konfigurace (pod značkou <PropertyGroup> ) přidejte následující prvek:

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    

    Následuje příklad souboru projektu s vloženým prvkem:

    <?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. Zkompilujte aplikaci.

Povolení automatického přesměrování vazeb ve webových aplikacích

Automatické přesměrování vazeb se pro webové aplikace implementuje jinak. Vzhledem k tomu, že zdrojový soubor konfigurace (web.config) musí být změněn pro webové aplikace, přesměrování vazeb se do konfiguračního souboru nepřidá automaticky. Visual Studio vás ale upozorní na konflikty vazeb a můžete přidat přesměrování vazeb pro vyřešení těchto konfliktů. Protože vždy dostanete výzvu k přidání přesměrování vazeb, nemusíte tuto funkci explicitně zakázat pro webovou aplikaci.

Abyste přidali přesměrování vazby do souboru web.config:

  1. Ve Visual Studio zkompilujte aplikaci a zkontrolujte upozornění sestavení.

    Upozornění ohledně konfliktů odkazů na knihovny při sestavení.

  2. Pokud dojde ke konfliktům vazby sestavení, zobrazí se upozornění. Poklikejte na upozornění nebo vyberte upozornění a stiskněte Enter.

    Zobrazí se dialogové okno, které umožňuje automaticky přidat potřebná přesměrování vazeb do zdrojového web.config souboru.

    Dialogové okno oprávnění pro přesměrování vazby (binding redirect)

Viz také