当我清理并构建包含多个项目的解决方案时,输出窗口会报告构建成功.但是,当我查看错误列表窗口时,它会显示此警告:
发现无法解析的同一依赖程序集的不同版本之间的冲突.当日志详细程度设置为详细时,这些引用冲突将在构建日志中列出.C:\ Program Files(x86)\ MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets
当我双击此消息时,它会打开C:\ Program Files(x86)\ MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets文件,但我不明白其中的任何内容.
我正在使用Visual Studio Express 2013进行Web.
如何找出错误以及哪个DLL以及如何使警告消失?
我目前正在开发一个.NET应用程序,它包含20个项目.其中一些项目是使用.NET 3.5编译的,其他一些项目仍然是.NET 2.0项目(到目前为止没问题).
问题是,如果我包含一个外部组件,我总会收到以下警告:
"Found conflicts between different versions of the same dependent assembly".
Run Code Online (Sandbox Code Playgroud)
这个警告究竟是什么意思,是否有可能排除这个警告(比如在源代码文件中使用#pragma disable)?
最近将log4net.dll添加到我们的数据对象.我们的数据对象构建完美,但是当您尝试构建引用我们的数据对象的任何内容时,您会收到以下错误:
无法解决"log4net,Version = 1.2.10.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304"和"log4net,Version = 1.2.9.0,Culture = neutral,PublicKeyToken = b32731d11ce58905"之间的冲突.任意选择"log4net,Version = 1.2.10.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304".
我发现以下线程使我能够获得有关该问题的更多信息.
log4net用于我们项目中的各种事情.例如,晶体在GAC中安装了1.2.9.我知道infragictics使用1.2.10.
我们有一个特定的目录 - 调用它c:\references- 我们构建所有的dll,并且我们所有的应用程序都用来引用我们的内部dll.所以我特意在数据对象中将我的引用设置为c:\ references\log4net.dll,即版本1.2.11.这很奇怪,因为在上面的错误消息中你没有看到1.2.11.dll以特定版本引用:= True&Copy Local:= True.我检查了构建目录和log4net的1.2.11确实被正确移动了.
如果它有帮助,这里有一些详细的错误消息:
There was a conflict between "log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" and "log4net, Version=1.2.9.0, Culture=neutral, PublicKeyToken=b32731d11ce58905".
No way to resolve conflict between "log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" and "log4net, Version=1.2.9.0, Culture=neutral, PublicKeyToken=b32731d11ce58905". Choosing "log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" arbitrarily.
References which depend on "log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" [C:\Windows\assembly\GAC_32\log4net\1.2.10.0__692fbea5521e1304\log4net.dll].
C:\Windows\assembly\GAC_MSIL\CrystalDecisions.Shared\13.0.2000.0__692fbea5521e1304\CrystalDecisions.Shared.dll …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我从GitHub获得的本地计算机上运行.NET MVC应用程序.
当我在Visual Studio上运行时,一切都符合,并打开一个新的浏览器窗口,其中包含错误:
CS1980:无法定义使用'dynamic'的类或成员,因为编译器需要类型'System.Runtime.CompilerServices.DynamicAttribute'
同一窗口中的编译器部分显示以下错误:
我已经检查了谷歌,这似乎是同样的错误.
这个人自己使用动态类型,另一方面我没有使用任何动态类型,这是由.NET的编译器自动生成的,我使用的是.net 4.5应该支持动态.
我尝试应用相同的解决方案(将所有System.Core引用更改为4.0),但问题是所有这些都已经是4.0版.
你知道我怎么解决这个问题?
我正在从我的一个项目中"发现不同版本之间的冲突".
如何找出哪些组件实际存在冲突?
"Microsoft.Bcl.Build.targets"包含此块:
<!--
Workaround MSBuild issue that prevents System.Runtime 2.5 and System.Threading.Tasks 2.5 from
satisfying indirect dependencies on System.Runtime 1.5 and System.Threading.Tasks 1.5 respectively.
-->
<AutoUnifyAssemblyReferences>false</AutoUnifyAssemblyReferences>
Run Code Online (Sandbox Code Playgroud)
实际上"AutoUnifyAssemblyReferences"有什么作用?
.net ×5
c# ×3
msbuild ×3
asp.net ×1
asp.net-mvc ×1
assemblies ×1
dynamic ×1
log4net ×1
warnings ×1