我的解决方案包含多个项目并编译好。我使用的是nuget,我使用的其中一个软件包是log4net.2.0.0。我最近将软件包更新到log4net.2.0.3并确保在每个属于该解决方案的项目中更新引用。不幸的是,我在编译过程中仍然收到以下警告:
使用/ verbosity进行编译时,(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。
或更详细的此警告版本:详细
考虑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。
非常感谢任何帮助。
答案 0 :(得分:40)
感谢我的父亲和https://github.com/mikehadlow/AsmSpy我设法找到了:
参考:log4net 1.2.11.0 by SuperSocket.SocketBase
哈哈!非常方便的工具!