相关疑难解决方法(0)

C# - 在.NET Core上的Visual Studio 2015中的F#Interop支持

注意:这里我讲的是dotnet核心,而不是完整的框架!对于完整的框架,有很多关于此的文档,但这是dotnet核心.

我有一个F#库

dotnet new --lang F#
Run Code Online (Sandbox Code Playgroud)

和一个ASP.NET Core RC2 C#应用程序(由VS中的File-> New Project创建).

现在我使用来自C#的F#库(我想这是一个非常常见的场景......).在Project.json中引用F#项目作为任何其他.net库(通过在依赖项下列出它)

现在所有这些编译和工作正常,这是伟大的!

唯一的问题是VS似乎不支持它.没有intellisense和行,我使用C#中的F#函数标记为错误.从C#到F#的调试也不起作用.我在带有VS Code的Mac上尝试过,同样的......

当我点击编译时,编译器会想出来,一切都很好.

这个截图总结了它(这是我从C#调用F#函数的地方): 在此输入图像描述

所以基本上我最终得到了VS解决方案,其中包含一堆错误,仍然可以编译.

是一个简单的复制器.

问题:

  1. 应该智能感知和调试在VS中工作吗?
  2. 如果是的话,我做错了什么?
  3. 如果不是,这个方案是否计划在未来涵盖?

以下是重现器的代码:

F#library - project.json(由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"
      ]
    } …
Run Code Online (Sandbox Code Playgroud)

.net f# visual-studio asp.net-core dotnet-cli

15
推荐指数
1
解决办法
1216
查看次数

F#支持最新的asp.net 5和MVC6

我需要找到一种使用最新的asp.net 5和mvc 6 web api在F#中构建休息服务的方法.Visual Studio 2015中是否有任何直接支持作为项目模板?如果没有,有人可以请我走上正确的道路如何进行?一种选择可能是构建一个F#库,然后从C#asp.net mvc 6项目中调用它.但是我会对构建原生F#mvc 6 web api非常感兴趣.谢谢!

谷歌退回了以下项目:https://github.com/fsprojects/fsharp-dnx

HelloFSharp示例工作正常,但无法管理HelloMVC项目构建:

  • dnu restore抱怨许多未找到的依赖项
  • dnx web有以下错误:

    System.TypeLoadException: Could not load type 'Microsoft.Extensions.Logging.ILogValues' from assembly 'Microsoft.Extensions.Logging.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
    
    Run Code Online (Sandbox Code Playgroud)

asp.net-mvc f# asp.net-core-mvc

6
推荐指数
1
解决办法
957
查看次数

F#:使用和不使用括号定义的类型之间的差异

F#type Something()type SomethingF#有什么区别?

为什么ASP.NET Core 1.0 F#项目中引用的此片段有效:

open System
open Microsoft.AspNetCore.Hosting
open Microsoft.AspNetCore.Builder
open Microsoft.AspNetCore.Hosting
open Microsoft.AspNetCore.Http

type Startup() = 
    member this.Configure(app: IApplicationBuilder) =
      app.Run(fun context -> context.Response.WriteAsync("Hello from ASP.NET Core!"))

[<EntryPoint>]
let main argv = 
    let host = WebHostBuilder().UseKestrel().UseStartup<Startup>().Build()
    host.Run()
    printfn "Server finished!"
    0
Run Code Online (Sandbox Code Playgroud)

但这失败了:

open System
open Microsoft.AspNetCore.Hosting
open Microsoft.AspNetCore.Builder
open Microsoft.AspNetCore.Hosting
open Microsoft.AspNetCore.Http

type Startup = 
    member this.Configure(app: IApplicationBuilder) =
      app.Run(fun context -> context.Response.WriteAsync("Hello from ASP.NET Core!"))

[<EntryPoint>]
let main argv …
Run Code Online (Sandbox Code Playgroud)

f#

4
推荐指数
1
解决办法
169
查看次数