单声道C#不识别列表和字典?

时间:2011-06-21 16:34:00

标签: c# dictionary mono

我正在尝试使用mono来为linux构建一个C#应用程序。但似乎字典<>和列表<>不可用?我找不到任何解决这个问题的方法,我觉得这很奇怪,因为在我看来这两个是非常基本的......

这是测试代码

使用System.Collections.Generic;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("TESTTEST");
            List<string> s = new List<string>();
            Console.Read();
        }
    }
}

这是控制台屏幕中的结果:

  

警告:支持运行时版本   由此应用程序不可用。   使用默认运行时:v1.1.4322

     

**(Test.exe:3152):警告**:班级   System.Collections.Generic.List`1 coul   d不加载,在mscorlib中使用,   版本= 4.0.0.0,文化=中立,   PublicKeyTo ken = b77a5c561934e089

     

未处理的例外情况:   System.TypeLoadException:无法   加载类型'System.Colle   来自程序集的ctions.Generic.List`1'   'mscorlib,版本= 4.0.0.0,   文化=中立,   公钥= b77a5c561934e089' 。德鲁克   操作门票。 。

2 个答案:

答案 0 :(得分:8)

这是问题所在:

  

使用默认运行时:v1.1.4322

您希望使用2.0或更高版本的运行时。

我的猜测是您正在使用mcs进行编译 - 请尝试使用gmcsdmcsgmcs定位2.0,dmcs定位4.0。有关详细信息,请参阅this documentation

编辑:啊,这看起来像是执行时问题,而不是编译时问题。您使用的是哪个版本的Mono?我怀疑它正试图找到4.0,但是失败了...你实际上是在运行你已经在Windows上构建的代码吗?

尝试安装最新版本的Mono;如果仍然失败,请查看是否可以确定安装了哪些运行时。

如果这些都没有帮助,请提供更多详细信息(例如您安装的Mono版本)。

答案 1 :(得分:0)

升级到Mono 2.10。它提供4.0类库,不再提供过时的1.1配置文件。