警告 MSB3276 - 發現同一依賴程序集的不同版本之間存在衝突
我的解決方案包含多個項目並且編譯良好。我正在使用 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 編譯時此警告的更詳細版本
考慮將程序集 “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:\Program Files (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。
任何幫助將非常感激。
感謝我的父親和<https://github.com/mikehadlow/AsmSpy>我設法找到了:
參考:SuperSocket.SocketBase 的 log4net 1.2.11.0
哈哈!好用的工具!