可能重复:在C#项目中包含FSharp.Core:解决类型冲突
我已将Microsoft.FSharp.Core.dll文件引用到.NET上的Web应用程序 .
我的fsharp函数返回到C#a
Tuple<string,int>
它在C#中标记为红色
说它存在于库FSharp.Core.dll和mscorlib.dll中
有没有办法指定它的FSharp元组,反之亦然?
您使用的是.NET 2.0(或其他框架基于.NET 2.0,如.NET 3.0或.NET 3.5)还是.NET 4.0?
.NET 2.0不包含元组定义,因此与.NET 2.0兼容的F#版本附带了它自己对元组的定义 . 在这种情况下,您需要引用FSharp.Core.dll并打开System,并且Tuple <>类应该在范围内 .
.NET 4.0在mscorlib.dll中包含了Tuple <>的定义,这是VS2010附带的F#版本使用的元组定义,在这种情况下,不需要引用FSharp.Core.dll . 删除对FSharp.Core.dll的引用应该可以解决您的问题 .
1 回答
您使用的是.NET 2.0(或其他框架基于.NET 2.0,如.NET 3.0或.NET 3.5)还是.NET 4.0?
.NET 2.0不包含元组定义,因此与.NET 2.0兼容的F#版本附带了它自己对元组的定义 . 在这种情况下,您需要引用FSharp.Core.dll并打开System,并且Tuple <>类应该在范围内 .
.NET 4.0在mscorlib.dll中包含了Tuple <>的定义,这是VS2010附带的F#版本使用的元组定义,在这种情况下,不需要引用FSharp.Core.dll . 删除对FSharp.Core.dll的引用应该可以解决您的问题 .