<assemblybinding>中的版本号是否应与Nuget版本号匹配?</assemblybinding>

时间:2014-04-19 19:56:58

标签: web-config nuget assembly-binding-redirect

查看以:

打开的Web.config运行时部分
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

以下是依赖项列表。阿塞。在 bindingRedirect 里面,' newVersion =“valu”'并不总是与Nuget报告的内容相匹配。

这是要纠正还是忽视?

THX

1 个答案:

答案 0 :(得分:4)

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将在安装软件包时添加绑定重定向。您还可以通过在程序包管理器控制台窗口中运行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的应用程序的自动绑定重定向,如果适用,这是另一个需要考虑的事项。