警告MSB3276-奇怪的Mono.Cairo版本控制行为

本文关键字:Cairo 版本控制 Mono MSB3276- 警告 | 更新日期: 2023-09-27 18:27:19

我正在Windows上开发一个GTK#应用程序,使用Xamarin Studio 5.5.2和GTK#2.12。

每次编译应用程序时,都会收到MSB3276警告。在寻找解决方案时,我发现了这个StackOverflow线程:

警告MSB3276-发现同一依赖程序集的不同版本之间存在冲突

根据其他线程的指示,我使用AsmSpy来检查问题所在,我发现了一些非常奇怪的东西。我的应用程序指的是Mono的两个不同版本。开罗图书馆:

Reference: mscorlib
        4.0.0.0 by ColorSharp
        4.0.0.0 by MathNet.Numerics
        4.0.0.0 by Newtonsoft.Json
        4.0.0.0 by LightCreator
Reference: MathNet.Numerics
        3.2.3.0 by ColorSharp
Reference: System.Numerics
        4.0.0.0 by MathNet.Numerics
        4.0.0.0 by Newtonsoft.Json
Reference: System
        4.0.0.0 by MathNet.Numerics
        4.0.0.0 by Newtonsoft.Json
        4.0.0.0 by LightCreator
Reference: System.Core
        4.0.0.0 by MathNet.Numerics
        4.0.0.0 by Newtonsoft.Json
Reference: System.Data
        4.0.0.0 by Newtonsoft.Json
Reference: System.Xml
        4.0.0.0 by Newtonsoft.Json
Reference: System.Xml.Linq
        4.0.0.0 by Newtonsoft.Json
Reference: System.Runtime.Serialization
        4.0.0.0 by Newtonsoft.Json
Reference: gtk-sharp
        2.12.0.0 by LightCreator
Reference: ColorSharp
        0.2.1.20880 by LightCreator
Reference: gdk-sharp
        2.12.0.0 by LightCreator
Reference: Mono.Cairo
        4.0.0.0 by LightCreator   // !!!!
        2.0.0.0 by LightCreator   // !!!!
Reference: Mono.Posix
        2.0.0.0 by LightCreator
Reference: glib-sharp
        2.12.0.0 by LightCreator

我一直在寻找解决方案,查看解决方案和项目属性、参考资料。。。但我什么也找不到。

有人知道如何解决这个奇怪的问题吗?

提前谢谢。

警告MSB3276-奇怪的Mono.Cairo版本控制行为

我也遇到了这个问题。事实证明,gtk-sharp.dll和您在gtk#周围使用的其他程序集都是通过引用Mono.Cairo 2.0.0.0编译的,所以当您在项目中引用它们时,编译器也会提取这些引用。

这一点很奇怪,因为windows的GTK#在一段时间内没有发货Mono.Cairo 2.0.0.0。希望Xamarin能在新版本中解决这个问题。我目前正在使用GTK#2.12.38