原创

如何:启用和禁用自动绑定重定向

从 Visual Studio 2013 开始,当你编译面向 .NET Framework 4.5.1 的应用程序时,绑定重定向可能会自动添加到应用配置文件,以便重写程序集统一。 如果你的应用或其组件引用同一程序集的多个版本,就会添加绑定重定向,即使你在应用的配置文件中手动指定绑定重定向。 自动绑定重定向功能会影响面向 .NET Framework 4.5.1 的传统桌面应用和 Web 应用,但对于 Web 应用来说,行为略有不同。 如果你有面向较早版本 .NET Framework 的现有应用,则可以启用自动绑定重定向,如果要保留手动编写的绑定重定向,你可以将此功能禁用。

在桌面应用中禁用自动绑定重定向

默认情况下,将为面向 .NET Framework 4.5.1 及更高版本的传统桌面应用启用自动绑定重定向。 编译应用并重写可能发生的程序集统一时,绑定重定向将添加到输出配置 (app.config) 文件中。 不修改源 app.config 文件。 你可以通过修改应用的项目文件来禁用此功能。

禁用自动绑定重定向 在 Visual Studio 中,在“解决方案资源管理器”中选择项目,然后从快捷菜单中选择“在文件资源管理器中打开文件夹”。 在文件资源管理器中,找到项目(.csproj 或 .vbproj)文件,并用记事本将其打开。 在项目文件中,查找以下属性项: true 将 true 更改为 false: false

手动启用自动绑定重定向

你可以在面向旧版本 .NET Framework 的现有应用中,或在不会自动提示你添加重定向的情况下,启用自动绑定重定向。 如果你面向较新版本的框架,但没有获得自动提示以添加重定向,你可能会获得建议你重新映射程序集的生成输出。 手动添加自动绑定重定向属性 在 Visual Studio 中,在“解决方案资源管理器”中选择项目,然后从快捷菜单中选择“在文件资源管理器中打开文件夹”。 在文件资源管理器中,找到项目(.csproj 或 .vbproj)文件,并用记事本将其打开。 将以下元素添加到第一个配置属性组(在 标记下): true 下面显示具有插入元素的示例项目文件。

    <?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>

编译你的应用。

在 Web 应用中启用自动绑定重定向

Web 应用的自动绑定重定向实现方式有所不同。 由于必须修改 Web 应用的源配置 (web.config) 文件,因此绑定重定向不会自动添加到配置文件。 但是,Visual Studio 会通知你绑定冲突,你可以添加绑定重定向来解决此冲突。 由于始终会提示你添加绑定重定向,因此你不需要为 Web 应用显式禁用此功能。 向 web.config 文件添加绑定重定向 在 Visual Studio 中,编译应用,然后检查生成警告。 IC663083.png 关于程序集引用冲突的生成警告 如果存在程序集绑定冲突,则将显示警告。 双击警告。 (键盘:选择警告,然后按“Enter”。) 此时将显示一个对话框,使你可以将必要的绑定重定向添加到源 web.config 文件。 IC663084.png 绑定重定向权限对话框

温馨提示:
本文最后更新于 2020年08月19日,已超过 892 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
正文到此结束
该篇文章的评论功能已被站长关闭
本文目录