Я использую некоторые типы F # ( Matrix и др.) Из C #, и поэтому мне нужно сослаться на сборку FSharp.Core в моем проекте C #.Пока все хорошо.
Однако, по-видимому, в mscorlib.dll (v4) определены некоторые типы, которые «дублируются» в FSharp.Core (v2), например System.Tuple
и System.IObservable
.Я не могу понять, почему это в .Net 4. Мэтт Эллис специально сказал, что они будут удалены в его статье MSDN :
Один язык страдал, что проблема [дублирования] былаF #, который ранее определил свой собственный тип кортежа в FSharp.Core.dll, но теперь будет использовать кортеж, добавленный в Microsoft .NET Framework 4.
Я готов просмотреть это конкретное неподобающее дублированиеесли бы я мог просто указать, какой из них я хочу использовать в моей программе на C #, однако.Например, когда я пытаюсь использовать тип System.Tuple
, я получаю следующую ошибку компилятора C #:
Ошибка 2 Тип 'System.Tuple' существует в обоих 'c: \ Program Files (x86) \ Справочные сборки \ Microsoft \ Framework.NETFramework \ v4.0 \ Profile \ Client \ mscorlib.dll 'и' c: \ Program Files (x86) \ Справочные сборки \ Microsoft \ FSharp \ 2.0 \ Runtime \ v2.0 \FSharp.Core.dll '
Обходным путем, по-видимому, является ключ командной строки компилятора C #, который псевдоним типа :
csc.exe MyType.cs /reference:System.Tuple`2=mscorlib.dll /reference:FSharp.Core.dll
Однако я не могу найти способ заставить Visual Studioотправьте этот параметр компилятору C #.
У кого-нибудь есть решение этой проблемы?