Web 配置 - <程序集绑定中的版本号是否应与 Nuget 版本号匹配>?



查看以开头的Web.config运行时部分

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

以下是depen的列表。Asse。在bindingRedirect中,'newVersion="valu"'并不总是与Nuget报告的内容匹配。

这是需要纠正还是忽略的?

thx

我假设NuGet报告是指NuGet为特定NuGet包显示的版本号。

首先,NuGet包的版本不一定与包中程序集的版本相匹配。因此绑定重定向版本可能有所不同。log4net:就是一个很好的例子

log4net NuGet package version: 2.0.3
log4net assembly version: 1.2.13

因此,如果你的一个NuGet包引用了log4net的旧版本,而你的项目引用了最新版本,那么我希望添加一个引用log4net 1.2.13的绑定重定向。

NuGet将在安装软件包时添加绑定重定向。您还可以通过在Package Manager控制台窗口中运行Add BindingRedirect命令,手动让NuGet更新项目的绑定重定向。

Add-BindingRedirect MyProjectName

如果在重建整个解决方案时,您会收到一条警告,看起来像:

MSB3247 - Found conflicts between different versions of the same dependent assembly

然后,您应该考虑修复绑定重定向,或者看看是否可以升级旧的NuGet包,以便以这种方式解决冲突。否则,应用程序可能无法加载特定程序集。

Visual Studio 2013支持.NET Framework 4.5.1应用程序的自动绑定重定向,如果适用的话,这是另一件需要考虑的事情。

最新更新