Я попытался создать переносимую библиотеку классов, используя F #, которая может быть использована, например, из кода С#. Но похоже, что использование стандартных конструкций F #, таких как raise
, делает FSharp.Core.dll необходимым для использования созданной Portable Class Library.
raise(ArgumentNullException("parameter"))
преобразуется в
Operators.Raise<Unit>(new ArgumentNullException("source"));
(где Operators.Raise
живет в пространстве имен Microsoft.FSharp.Core
) вместо просто
throw new Exception
Я предполагаю, что это не единственная конструкция F #, которая скомпилирована для некоторого статического метода из библиотеки FSharp.Core.dll.
Есть ли способ создать F # -код (особенно Portable Class Library), который после компиляции не требует ссылки на FSharp.Core.dll или любую другую библиотеку, специфичную для FSharp?