Включение FSharp.Core в проект C #: разрешение конфликтов типов

Я использую некоторые типы F # (матрица et al) из 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) \ Reference Assemblies \ 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 #.

У кого-нибудь есть решение этой проблемы?

Ответы на вопрос(2)

Ваш ответ на вопрос