问题 缺少F#.NET Framework控制台应用程序模板


我在创作方面遇到了麻烦 F# Console App 运用 .Net Framework (不是.Net Core)。当我打开:

Visual Studio 2017 -> New project -> Visual F# -> .Net Standard 

唯一可见的模板是 Class Library

使用Visual Studio Installer我添加了以下包:

  • F# Language Support (我知道这是.Net Core的依赖,但它仍然可能很重要)
  • F# Desktop Language Support (安装人员说它只有147KB大小,可以吗?)

但是,这并没有改变任何东西 - 仍然没有模板 Console Application。我还试图看看.NET Framework的目标版本是否会发生任何变化,但事实并非如此 - 我是否遗漏了其他任何内容?

注意:我不能用 .Net Core 版本,即使我想,因为使用我将要使用的框架只支持.Net标准框架 - 它需要System.Windows.Forms。


5997
2018-01-26 09:25


起源



答案:


显然我是瞎子。但是,以我为借口,我需要澄清一下:


要使用.Net Framework(而非Core)创建控制台应用程序,我需要单击:

Visual Studio 2017 -> New project -> Visual F# (the template is here)

并不是:

Visual Studio 2017 -> New project -> Visual F# -> .Net Standard (the template is one step up in hierarchy)


说明:

正如@PanagiotisKanavos在评论中所述:

.NET Standard仅用于 便携式库

所以它根本不应该在那里。


注意:
F# Desktop Language Support 是一个必需的包,包含F#Console App(和其他非核心模板)的模板。

如果您没有安装此功能,则无论您在何处单击,都不会看到该模板。您可以使用安装它 Visual Studio Installer 通过 Individual Components 标签。


14
2018-01-26 10:27



.NET Standard仅用于 便携式库 - Panagiotis Kanavos
我从中吸取了教训。谢谢你的澄清。 - Asunez
人们几年来一直在讨论.NET Core和.NET Standard,其中有一个 批量 解释标准,框架和核心如何相互关联的文章 - Panagiotis Kanavos
@NikolaiKoudelia当您打开Visual Studio Installer并切换到 个别组件 你有 F#语言支持 和 F#桌面支持 勾选?如果没有,请安装它们。另外 - 如果有帮助,请查看是否切换.Net版本(窗口的上半部分)。 - Asunez
桌面支持丢失了,谢谢! - Nikolai Koudelia


答案:


显然我是瞎子。但是,以我为借口,我需要澄清一下:


要使用.Net Framework(而非Core)创建控制台应用程序,我需要单击:

Visual Studio 2017 -> New project -> Visual F# (the template is here)

并不是:

Visual Studio 2017 -> New project -> Visual F# -> .Net Standard (the template is one step up in hierarchy)


说明:

正如@PanagiotisKanavos在评论中所述:

.NET Standard仅用于 便携式库

所以它根本不应该在那里。


注意:
F# Desktop Language Support 是一个必需的包,包含F#Console App(和其他非核心模板)的模板。

如果您没有安装此功能,则无论您在何处单击,都不会看到该模板。您可以使用安装它 Visual Studio Installer 通过 Individual Components 标签。


14
2018-01-26 10:27



.NET Standard仅用于 便携式库 - Panagiotis Kanavos
我从中吸取了教训。谢谢你的澄清。 - Asunez
人们几年来一直在讨论.NET Core和.NET Standard,其中有一个 批量 解释标准,框架和核心如何相互关联的文章 - Panagiotis Kanavos
@NikolaiKoudelia当您打开Visual Studio Installer并切换到 个别组件 你有 F#语言支持 和 F#桌面支持 勾选?如果没有,请安装它们。另外 - 如果有帮助,请查看是否切换.Net版本(窗口的上半部分)。 - Asunez
桌面支持丢失了,谢谢! - Nikolai Koudelia


这不是一个答案,而是一个解决方法。

您可以创建2个项目。 F#库和C#控制台应用程序。将F#项目引用到您的C#控制台应用程序。从那里,您可以从控制台应用程序内部调用您的F#方法。


1
2018-01-26 09:32



很高兴知道,当我放弃寻找答案时,我会尝试这种方法。为了添加解决方案,我认为也可以添加 System.Windows.Forms dll到.Net核心项目,但我认为这种稳定性相当稀缺。尽管有一个可能的解决方法有一个upvote :) - Asunez
没有必要创建一个C#控制台应用程序,F#控制台应用程序工作得很好。 .NET Standard虽然仅用于可移植库,但无论使用何种语言 - Panagiotis Kanavos