Soporte de interoperabilidad C # - F # en Visual Studio 2015 en .NET Core

Nota: ¡aquí hablo de dotnet core y no full framework! Para el marco completo hay muchos documentos sobre esto, pero este es el núcleo de dotnet.

Tengo una biblioteca F # creada por

dotnet new --lang F#

Y una aplicación ASP.NET Core RC2 C # (creada por File-> New Project en VS).

Ahora uso mi biblioteca F # de C # (supongo que un escenario muy común ...). Se hace referencia al proyecto F # en project.json como cualquier otra biblioteca .net (enumerándolo bajo dependencias)

Ahora todo esto se compila y funciona bien, ¡lo cual es genial!

El único problema es que VS no parece admitirlo. No hay intellisense y las líneas, donde uso las funciones F # de C # están marcadas como error. La depuración de C # a F # tampoco funciona. Lo probé en una Mac con VS Code, lo mismo allí ...

Cuando presiono compilar, los compiladores se dan cuenta de esto y todo está bien.

Esta captura de pantalla lo resume (aquí es donde llamo una función F # desde C #):

Así que básicamente terminé con la solución VS con un montón de errores, que aún se compila.

aquí Es un simple reproductor.

Preguntas:

¿Intellisense y depuración deberían funcionar en VS?En caso afirmativo, ¿qué hice mal?Si no, ¿se planea cubrir este escenario en el futuro?

Aquí está el código del reproductor:

F # library - project.json (creado por cli -dotnet new --lang F#)

  "version": "1.0.0-*",
  "buildOptions": {
    "compilerName": "fsc",
    "compile": {
      "includeFiles": [
        "FSharpLibrary.fs"
      ]
    }
  },
  "dependencies": {
    "Microsoft.FSharp.Core.netcore": "1.0.0-alpha-160316",
    "NETStandard.Library": "1.5.0-rc2-24027"
  },
  "tools": {
    "dotnet-compile-fsc": {
      "version": "1.0.0-*",
      "imports": [
        "dnxcore50",
        "portable-net45+win81",
        "netstandard1.3"
      ]
    }
  },
  "frameworks": {
    "netstandard1.5": {
      "imports": [
        "portable-net45+win8",
        "dnxcore50"
      ]
    }
  }

F # biblioteca, el código:

namespace FSharpLibrary

module Sample =

    let public FSharpFunction number = 
            printfn "Hello From F#, %d" number

Aplicación C # (aquí uso una aplicación de consola, pero lo mismo que con asp.net core)

using System;
namespace ConsoleAppCSharp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            FSharpLibrary.Sample.FSharpFunction(42); //<- This is red. and marked as error.     
            Console.ReadKey();
        }
    }
}

Aplicación de consola C # project.json

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "LibraryFSharp": "1.0.0-*",
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0-rc2-3002702"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}

Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta