【问题标题】:Namespace not defined in F# ASP.NET MVC project in VS CodeVS Code 的 F# ASP.NET MVC 项目中未定义命名空间
【发布时间】:2017-07-06 22:14:12
【问题描述】:

我目前正在尝试在学习 F# 和 Web 开发方面取得一些进展,为此我使用 Yeoman 生成了一个 F# ASP.NET 项目作为开始 (generator)。

我已经使用 Bower 安装了依赖项,并且项目在 VS Code 和仅使用 dotnet run 时都可以毫无问题地构建和运行。但是,导航到 Startup.fs,它声称这些打开的命名空间没有定义:

open Microsoft.AspNetCore.Builder
open Microsoft.AspNetCore.Hosting
open Microsoft.Extensions.Configuration
open Microsoft.Extensions.DependencyInjection
open Microsoft.Extensions.Logging

在.fsproj文件中,包含以下包,我已经运行dotnet restore

<PackageReference Include="FSharp.NET.Sdk" Version="1.0.0-beta-*" PrivateAssets="All"/>
<PackageReference Include="Microsoft.AspNetCore" Version="1.0.4" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.0.3"/>
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.0.2"/>
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.0.2"/>
<PackageReference Include="Microsoft.FSharp.Core.netcore" Version="1.0.0-alpha-161023"/>
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.0.1"/>

在我看来,这些行应该至少包含一些与上述命名空间相关的 NuGet 包。我想知道如何让 VS Code 看到这些命名空间是在包中定义的,以及当前出了什么问题。任何见解将不胜感激。

【问题讨论】:

  • 你试过重新加载 VSCode 窗口吗?
  • 我有,多次。恐怕重新打开文件并不能解决问题
  • 我没有使用 F# 和核心但是我注意到你有作为参考 。我安装了一个 .net core 2 预览版,并通过 dotnet 命令生成了新的 Web 项目,生成了对 在 VS Code 中没有问题
  • @AlexanderM 软件包版本似乎是问题所在!原来是 FSharp.NET.Sdk 版本。将其更新到最新版本(当前为 1.0.5,因此 1.0.* 有效)修复了它。您可以添加您的答案,以便我接受吗?
  • @s952163 我不喜欢 ASP.NET,但我正在尝试使用我不太熟悉的技术,F# 就是其中之一。顺便说一句,我正在尝试使用 ASP.NET Core,据我所知,情况发生了一些变化? Fable 在游戏方面看起来很有趣,但我的目标可能需要一个完整的堆栈。不过欢迎输入,我对 F# Web 开发完全陌生。

标签: asp.net-mvc f# nuget


【解决方案1】:

问题下的每个 cmets 将我的评论移至答案:

我没有使用过带核心的 F#,但是我注意到你有一个参考

<PackageReference Include="FSharp.NET.Sdk" Version="1.0.0-beta-*" PrivateAssets="All"/>
<PackageReference Include="Microsoft.FSharp.Core.netcore" Version="1.0.0-alpha-161023"/>. 

我安装了一个 .net core 2 预览版,并通过 dotnet 命令生成了新的 Web 项目,生成了对

的引用
<PackageReference Include="FSharp.Core" Version="4.1.*" /> 
<PackageReference Include="FSharp.NET.Sdk" Version="1.0.*" PrivateAssets="All" /> 

这在 VS Code 中没有问题

【讨论】:

    猜你喜欢
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 2017-08-15
    • 2018-09-01
    • 1970-01-01
    • 2018-09-07
    相关资源
    最近更新 更多