【发布时间】:2012-11-18 02:00:14
【问题描述】:
我有一些使用 Tuples 的 C# 代码:
public class Test {
static void Main() {
Tuple<int, int> t = Tuple.Create(0, 1);
}
}
我尝试编译使用
mcs -debug+ -o Test.exe Test.cs
但它给出了错误
Test.cs(3,9): error CS0246: The type or namespace name `Tuple' could not be found. Are you missing a using directive or an assembly reference?
Compilation failed: 1 error(s), 0 warnings
我认为它可能试图针对缺少元组的旧版本 mscorlib 进行编译。查看手册页,您似乎使用-sdk:4 指定了版本,但这也不起作用:
$ mcs -sdk:4 Test.cs
Unhandled Exception: System.TypeLoadException: Type 'System.Dynamic.BinaryOperationBinder' not found in assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
(后跟堆栈跟踪)。
我正在跑步:
$ mcs --version
Mono C# compiler version 2.10.8.1
在 Ubuntu Precise 上。根据文档,Mono 从 2.8 版开始就支持 .NET 4.0,尤其是 supports System.Tuple,所以这不应该是问题。
如何编译使用Tuples 的代码?
【问题讨论】:
-
@mikez:
dmcs给出的错误与第一个mcs错误完全相同。 -
@JimMischel:这个问题是关于旧的
gmcs/dmcs编译器的。 -
@Mechanicalsnail 还将
using System;添加到 Test.cs -
@mikez:很有趣。添加
using System;可以使用dmcs修复它,但不能使用mcs或mcs -sdk:4。
标签: c# .net c#-4.0 mono compiler-errors