【问题标题】:How to solve the "System.Tuple defined multiple times issue"?如何解决“System.Tuple 定义多次问题”?
【发布时间】:2013-05-11 04:09:28
【问题描述】:

我的项目目标是 WP 7.5 及更高版本,我使用 VS 2012 中的 Nuget 添加了一个包,名称为 Coding4fun(Controls)。

之后,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

应用程序运行正常,但如何解决此警告?

【问题讨论】:

    标签: c# windows-phone-7 visual-studio-2012 nuget


    【解决方案1】:

    来自Compiler Warning (level 1) CS1685

    当预定义的系统类型如System.Tuple 时会发生此错误 在两个程序集中找到。发生这种情况的一种方法是,如果您是 从两个不同的地方引用 mscorlib,例如尝试运行 .Net Framework 1.0 和 1.1 版本并排。

    编译器将仅使用其中一个程序集的定义。

    这个问题可能出现System.Tuple 是在两个不同的程序集中定义的。可能你的Coding4Fun.Toolkit.Controls.dll除了mscorlib.dll之外也有。

    如果你想看他们两个,你可以检查他们;

    • 获取像 ILSpyJetbrains dotPeek 这样的反编译器。
    • 添加所有第 3 方程序集。
    • 搜索System.Tuple

    但是如何解决这个警告呢?

    您可以定义您的第 3 方程序集引用一些别名。你可以在你的项目中关注

    Reference -> Properties -> Aliases ->
    

    并将"global" 更改为不同的东西。

    查看信息extern alias (C# Reference)

    【讨论】:

    • 谢谢,设置别名后一切正常:)
    【解决方案2】:

    较新版本的 c4f 工具包已解决此问题。

    【讨论】:

      猜你喜欢
      • 2020-01-19
      • 1970-01-01
      • 2020-02-27
      • 1970-01-01
      • 2022-09-23
      • 2011-10-09
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多