【发布时间】:2014-06-26 11:08:03
【问题描述】:
我的解决方案包含多个项目并且编译良好。我正在使用 nuget,我使用的包之一是 log4net.2.0.0。我最近将包更新为 log4net.2.0.3,并确保在属于该解决方案的每个项目中,都更新了引用。不幸的是,在编译过程中我仍然收到以下警告:
(ResolveAssemblyReferences 目标)-> C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targe ts(1635,5):警告 MSB3276:发现不同之间的冲突 相同依赖程序集的版本。请设置 项目文件中的“AutoGenerateBindingRedirects”属性为 true。 欲了解更多信息,请参阅http://go.microsoft.com /fwlink/?LinkId=294190.
或使用 /verbosity:detailed 编译时此警告的更详细版本
考虑 app.config 重新映射程序集“log4net, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" 从版本 "1.2.11.0" [] 到版本 “1.2.13.0” [Z:\xxx\packages\log4net.2.0.3\lib\net40-full\log4net.dll] 解决冲突并消除警告。 C:\程序文件 (x86)\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 位置: "{Registry:Software\Microsoft.NETFramework,v4.5,AssemblyFoldersEx}"
我明白这意味着什么,遗憾的是我无法追踪哪个项目/库仍然引用旧版本的 log4net。我知道我可以通过简单地在 app.config 中重新映射来掩盖警告,但这似乎是把问题扫在地毯下,而不是真正正确地解决它。
在我的解决方案中找到对旧版本 log4net 的引用的最佳方法是什么?我已经尝试了所有显而易见的方法,包括在所有文件中搜索版本号。我还确保没有其他 nupkg 将依赖项设置为此特定版本的 log4net。
任何帮助将不胜感激。
【问题讨论】: