.NET 3.5解决方案在使用msbuild进行编译时出现此警告。
有时NDepend可能会提供帮助,但在这种情况下,它没有提供任何进一步的细节。Like Bob我最终不得不在ILDASM中打开每个程序集,直到我找到引用依赖程序集的旧版本的程序集。
我确实试过使用VS2010Beta2中的MSBUILD (正如Connect文章指出的那样,这在下一个版本的CLR中已经修复了),但也没有提供更多细节(可能是Beta2之后的修复)
有没有更好的(更自动化的)方法?
发布于 2010-01-31 05:23:57
将"MSBuild项目构建输出详细程度“更改为"Detailed”或更高。要执行此操作,请执行以下步骤:
和解决方案打开选项对话框(工具和左侧树,选择项目和解决方案节点,然后选择Build Run。显示所有设置注意:如果此节点未显示,请确保对话框底部的复选框checked.
- **Diagnostics** when on VS2012, VS2013 or VS2015 (the message in these versions _says_ you should use "Detailed", [but this is plain wrong, you should use "Diagnostics"](https://stackoverflow.com/a/25749689/111575))
- **Detailed** when you're on VS2010
- **Normal** will suffice in VS2008 or older.
查看MSBuild消息。ResolveAssemblyReferences
任务是产生MSB3247的任务,它可以帮助您调试这个特定问题。
我的具体案例是对SqlServerCe的错误引用。见下文。我有两个项目引用了两个不同版本的SqlServerCe。我转到使用旧版本的项目,删除引用,然后添加正确的引用。
Target ResolveAssemblyReferences:
Consider app.config remapping of assembly "System.Data.SqlServerCe, ..."
from Version "3.5.1.0" [H:\...\Debug\System.Data.SqlServerCe.dll]
to Version "9.0.242.0" [C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PublicAssemblies\System.Data.SqlServerCe.dll]
to solve conflict and get rid of warning.
C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets :
warning MSB3247: Found conflicts between different versions of the same dependent assembly.
不必打开每个程序集来确定引用的程序集的版本。
使用文本编辑器,您可以检查每个Reference.
发布于 2012-03-31 04:35:19
Mike Hadlow的posted a little console app called AsmSpy很好地列出了每个程序集的引用:
Reference: System.Net.Http.Formatting
4.0.0.0 by Shared.MessageStack
4.0.0.0 by System.Web.Http
Reference: System.Net.Http
2.0.0.0 by Shared.MessageStack
2.0.0.0 by System.Net.Http.Formatting
4.0.0.0 by System.Net.Http.WebRequest
2.0.0.0 by System.Web.Http.Common
2.0.0.0 by System.Web.Http
2.0.0.0 by System.Web.Http.WebHost
与依赖于MSBuild输出相比,这是一种更快地了解警告MSB3247的方法。
发布于 2015-09-11 05:07:51
有时候@AMissico的答案是不够的。在我的例子中,我在输出窗口中找不到错误,所以我决定创建一个日志文件并对其进行分析,执行以下步骤:
msbuild MyProject.proj /fl /flp:logfile=MyProjectOutput.log;verbosity=detailed
warning MS...
或特定警告信息:(例如,第9293行) Found conflicts between different versions...
和冲突错误的完整详细信息将位于此消息的上方(例如,第9277行) There was a conflicts between...
Visual Studio 2013
https://stackoverflow.com/questions/1871073
复制相似问题