我在项目目标WP 7.5及更高版本上工作,我使用VS 2012中的Nuget添加了一个包,其名称为Coding4fun(控件)。
之后,IDE会给我一个警告,
警告1预定义类型“System.Tuple”定义为多个 全局别名中的程序集;使用定义 'c:\ Users \ Gao \ Documents \ Visual Studio 2012 \ Projects \ TFSGit \ xicihutong \ packages \ Coding4Fun.Toolkit.Controls.2.0.5 \ lib \ wp71 \ Coding4Fun.Toolkit.Controls.dll'C:\ Users \ Gao \ Documents \ Visual Studio 2012 \ Projects \ TFSGit \ xicihutong \ xicihutong \ CSC xicihutong
该应用运行正常,但如何解决此警告?
答案 0 :(得分:8)
来自Compiler Warning (level 1) CS1685
预定义的系统类型(例如
System.Tuple
)发生此错误 有两个组件。这种情况的一种方式就是你 从两个不同的地方引用mscorlib,例如尝试运行 the.Net Framework版本1.0和1.1并排。编译器将仅使用其中一个程序集中的定义。
发生此问题可能System.Tuple
在两个不同的程序集中定义。可能您的Coding4Fun.Toolkit.Controls.dll
除了mscorlib.dll
之外还有其他内容。
如果您想查看它们,可以查看它们;
ILSpy
或Jetbrains dotPeek
等反编译器。System.Tuple
但如何解决此警告?
您可以定义第三方程序集引用一些别名。您可以关注项目
Reference -> Properties -> Aliases ->
将"global"
更改为不同的内容。
答案 1 :(得分:1)
较新版本的c4f工具包解决了这个问题。