如何:启用和禁用自动绑定重定向
从 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)文件,并用记事本将其打开。 在项目文件中,查找以下属性项:
手动启用自动绑定重定向
你可以在面向旧版本 .NET Framework 的现有应用中,或在不会自动提示你添加重定向的情况下,启用自动绑定重定向。 如果你面向较新版本的框架,但没有获得自动提示以添加重定向,你可能会获得建议你重新映射程序集的生成输出。 手动添加自动绑定重定向属性 在 Visual Studio 中,在“解决方案资源管理器”中选择项目,然后从快捷菜单中选择“在文件资源管理器中打开文件夹”。 在文件资源管理器中,找到项目(.csproj 或 .vbproj)文件,并用记事本将其打开。 将以下元素添加到第一个配置属性组(在
<?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 中,编译应用,然后检查生成警告。 关于程序集引用冲突的生成警告 如果存在程序集绑定冲突,则将显示警告。 双击警告。 (键盘:选择警告,然后按“Enter”。) 此时将显示一个对话框,使你可以将必要的绑定重定向添加到源 web.config 文件。 绑定重定向权限对话框
本文来自:如何:启用和禁用自动绑定重定向-小码农,转载请保留本条链接,感谢!
- 本文标签: 绑定重定向 .net web
- 本文链接: https://djc8.cn/archives/how-to-enable-and-disable-automatic-binding-redirection.html
- 版权声明: 本文由小码农原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权