警告MSB3276 - 发现同一依赖程序集的不同版本之间存在冲突

时间:2014-05-08 20:49:35

标签: .net msbuild nuget

我的解决方案包含多个项目并编译好。我使用的是nuget,我使用的其中一个软件包是log4net.2.0.0。我最近将软件包更新到log4net.2.0.3并确保在每个属于该解决方案的项目中更新引用。不幸的是,我在编译过程中仍然收到以下警告:

  

(ResolveAssemblyReferences target) - > C:\ Program Files   (86)\的MSBuild \ 12.0 \ BIN \ Microsoft.Common.CurrentVersion.targe   ts(1635,5):警告MSB3276:发现不同之间存在冲突   相同从属程序集的版本。请设置   " AutoGenerateBindingRedirects"项目文件中的属性为true。   有关更多信息,请参阅http://go.microsoft.com   / fwlink /?LINKID = 294190。

使用/ verbosity进行编译时,

或更详细的此警告版本:详细

  

考虑app.config重新映射程序集" log4net,Culture = neutral,   公钥= 669e0ddf0bb1aa2a"来自版本" 1.2.11.0" []到版本   " 1.2.13.0"   [Z:\ XXX \包\ log4net.2.0.3 \ lib中\ net40满\ log4net.dll]   解决冲突,摆脱警告。 C:\ Program Files   (86)\的MSBuild \ 12.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(1635,5):   警告MSB3276:发现不同版本之间的冲突   相同的依赖集会。请设置" AutoGenerateBindingRedirects"   项目文件中的属性为true。有关更多信息,请参阅   http://go.microsoft.com/fwlink/?LinkId=294190。   [Z:\ XXX \ XXX \ XXX \ xxx.csproj]
  AssemblyFoldersEx位置:   " {注册表:软件\ Microsoft.NETFramework,V4.5,AssemblyFoldersEx}"

我理解这意味着什么,遗憾的是我无法追踪哪个项目/库仍然引用旧版本的log4net。我知道我可以通过简单地重新映射到app.config来掩盖警告,但这似乎是在地毯下扫除问题而不是实际解决它。

在我的解决方案中追踪旧版log4net的最佳方法是什么?我已经尝试了所有显而易见的事情,包括在所有文件中搜索版本号。我还确保没有其他nupkgs将依赖项设置为此特定版本的log4net。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:40)

感谢我的父亲和https://github.com/mikehadlow/AsmSpy我设法找到了:

参考:log4net    1.2.11.0 by SuperSocket.SocketBase

哈哈!非常方便的工具!