C# 发现冲突...循环引用?

问题描述 投票:0回答:1

在我的由约 20 个项目组成的解决方案中,一个项目给出了此构建警告:

9>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2364,5): warning MSB3277: Found conflicts between different versions of "System.Drawing" that could not be resolved.
9>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2364,5): warning MSB3277: There was a conflict between "System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "System.Drawing, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
9>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2364,5): warning MSB3277:     "System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was chosen because it was primary and "System.Drawing, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was not.
9>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2364,5): warning MSB3277:     References which depend on "System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Drawing.dll].
9>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2364,5): warning MSB3277:         C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Drawing.dll
9>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2364,5): warning MSB3277:           Project file item includes which caused reference "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Drawing.dll".
9>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2364,5): warning MSB3277:             System.Drawing
9>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2364,5): warning MSB3277:     References which depend on "System.Drawing, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [].

依赖于 System.Drawing v6.0.2.0 的引用由解决方案中的其他项目组成,但引用 v4.0.0.0 的项目文件似乎是其本身。我找不到任何方法来阻止这种自我引用。如有任何建议,我们将不胜感激。

c# reference
1个回答
0
投票

来自评论...

我可能已经找到了解决办法。我删除了

<dependentAssembly> 
   <assemblyIdentity name="System.Drawing" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
   <bindingRedirect oldVersion="0.0.0.0-6.0.2.0" newVersion="6.0.2.0" /> 
</dependentAssembly>

来自项目的 app.config 文件。不强制执行新版本感觉有点奇怪,但在项目中的某个地方,旧版本的依赖关系导致了冲突。删除此重定向是否合理?

感谢@Tenatus 帮助产生想法

© www.soinside.com 2019 - 2024. All rights reserved.