C# 对于引用的引用,程序集绑定重定向是如何工作的?

C# 对于引用的引用,程序集绑定重定向是如何工作的?,c#,visual-studio-2012,nuget,C#,Visual Studio 2012,Nuget,类库A引用了Microsoft.Data.OData(在许多其他程序集中),并通过AutoUnify或通过app.config中NuGet提供的重定向(我无法确定哪一个适用),将对5.2.0.0的引用自动重新绑定到安装的NuGet5.6.0.0版本 类库B引用类库A,但不是Microsoft.Data.OData Web API项目C和控制台应用程序D都引用类库B,还特别引用了Microsoft.Data.OData 5.6.0.0,并具有app.config重定向 当一次性构建解决方案时,所有

类库A引用了
Microsoft.Data.OData
(在许多其他程序集中),并通过AutoUnify或通过app.config中NuGet提供的重定向(我无法确定哪一个适用),将对
5.2.0.0
的引用自动重新绑定到安装的NuGet
5.6.0.0
版本

类库B引用类库A,但不是
Microsoft.Data.OData

Web API项目C和控制台应用程序D都引用类库B,还特别引用了
Microsoft.Data.OData 5.6.0.0
,并具有app.config重定向

当一次性构建解决方案时,所有引用都会正常运行,并且正确的
5.6.0.0
版本的DLL会放置在
bin
目录中

但是,如果我调试控制台应用程序D,就会重建一些引用的项目,(我想!)Visual Studio会将重建的Dll不正确的
5.2.0.0
OData Dll复制到所有引用项目中,包括Web API项目C


当单独构建项目时,有没有办法强制VS遵守程序集重定向到新版本的要求?

您能解决这个问题吗?我目前正在与teamcity讨论同样的问题。@JoseMarmolejos我能够解决这个问题:我在每个中间项目中添加了对
OData
库的引用,然后在NuGet package manager窗口中为所有项目运行
Add BindingRedirect
。有点暴力,但奏效了。