【发布时间】: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