Fable: 支持针对完整 .net 框架的项目文件的步骤?

创建于 2017-05-26  ·  6评论  ·  资料来源: fable-compiler/Fable

.NET Core 很酷,但是开始使用 Fable 需要一个陡峭的学习曲线并安装很多东西(dotnet sdk、运行时)。 我相信很多人仍在使用 VS 2015(或 2013、2010)并且对它感到满意。

实现这一目标有哪些挑战?

  • 解析旧项目文件(在v0.7.x中已经完成)
  • 使用 paket(AFAIK,paket 已经与“旧”项目文件一起使用,并且 VS 2015 也支持 paket)
  • 将 Fable.Tools 发布为 nuget 包,其中守护程序是tools目录中的控制台应用程序,根据 nuget 的说法,“工具目录的路径将添加到 PATH”
question

最有用的评论

很抱歉,但我无法为此投入任何时间,如果有人对支持旧项目格式的寓言 1.0 感兴趣,他们将不得不自己开发该功能。 使用当前的工具集已经很难让 Fable 工作,而且我们的团队太小,无法涵盖太多的场景。 目前,VS for Windows 是唯一不支持新 .fsproj 的编辑器,而且很快就会支持。 我不认为将开发资源用于支持旧格式值得付出努力😕

解析旧项目文件(在v0.7.x中已经完成)

请注意,这只适用于源文件和非条件引用,这迫使用户手动添加对库的引用。

使用包

AFAIK,旧项目的 Paket 通过在 .fsproj 中注入大量条件项来工作,而不是我们现在使用的.fsproj.references文件。 我们将不得不以完全不同的方式与 Paket 进行交互。

将 Fable.Tools 发布为 nuget 包,其中守护程序是工具目录中的控制台应用程序

我从未使用过这个,所以我不确定它是如何工作的。

所有6条评论

很抱歉,但我无法为此投入任何时间,如果有人对支持旧项目格式的寓言 1.0 感兴趣,他们将不得不自己开发该功能。 使用当前的工具集已经很难让 Fable 工作,而且我们的团队太小,无法涵盖太多的场景。 目前,VS for Windows 是唯一不支持新 .fsproj 的编辑器,而且很快就会支持。 我不认为将开发资源用于支持旧格式值得付出努力😕

解析旧项目文件(在v0.7.x中已经完成)

请注意,这只适用于源文件和非条件引用,这迫使用户手动添加对库的引用。

使用包

AFAIK,旧项目的 Paket 通过在 .fsproj 中注入大量条件项来工作,而不是我们现在使用的.fsproj.references文件。 我们将不得不以完全不同的方式与 Paket 进行交互。

将 Fable.Tools 发布为 nuget 包,其中守护程序是工具目录中的控制台应用程序

我从未使用过这个,所以我不确定它是如何工作的。

我想我在这里提出了错误的“问题”,这应该是一个问题 :smile:

我对不同的工作流程有一些想法,我想自己尝试一下,但我不确定理论上需要什么才能使其正常工作。

dotnet pack发布的 nuget 包不能在 net45 中使用是否正确?

使用 dotnet pack 发布的 nuget 包不能在 net45 中使用是否正确?

不,您可以将net45作为您的目标之一。

@ctaggart很好,很高兴知道。 谢谢!

@Zaid-Ajaj 虽然新 sdk(寓言中使用的新 fsproj)在 mono/msbuild.exe/dotnet cli(来自fsharp.net.sdk >= 1.0.3 ,VS 2017 尚不支持)中的工作方式相同。
所以你可以定位net45 (可以在同一个 fsproj 中定位多个目标,使用新的 sdk btw),但无论如何它在 VS 中不起作用。 不是 .net 核心,问题是新的 sdk 和项目格式。
旧的 sdk 在跨平台支持方面存在更多问题,对维护人员来说是一种痛苦(只是阅读项目信息是一种痛苦并且有问题,正如@alfonsogarciacaro所说)

在 VF# 路线图中,预计日期是 7 月更新,届时 VS 2017 将支持 Visual F# 中的新 sdk。

因此,与其做大量工作来支持即将过时的旧 sdk(维护两个实现的痛苦),不如让 ihmo 稍等一下(带有寓言的跨平台支持 atm 和诸如 vscode/vsonmac 之类的编辑器很棒)直到 7 月然后使用新的 sdk 用net4*改进 VS

因此,最终 msbuild .net 运行时(mono/vs/netcore)将不那么重要(感谢新 sdk),可能对用户透明(对于 Windows 用户来说肯定),但是没有 VS 支持的 atm,花时间 ihmo 是没用的,因为体验(对于用户)需要打磨,维护(对于寓言团队)需要最小化。
新的 sdk 会有所帮助,但需要更多时间。 旧的 sdk 是一个时间槽,在 .net 世界中无论如何都已经过时了。

@enricosada我考虑这样做的主要原因是简化新手的入门体验。 让人们可以轻松地使用他们现在拥有的东西(vs2015 或更低版本)来玩寓言。 我现在在 dotnet 核心中使用 vs 代码,效果很好。 但这是在一系列令人沮丧的尝试之后,首先要让它在我的机器上运行。 我什至无法在我的机器上安装 VS2017,这是让我思考这个问题的另一个原因。

但是,在阅读了您的反馈后,我不得不同意将开发资源集中在新的 sdk 上会更好,等待一点是值得的。

再次感谢您在这方面的时间。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

matthid picture matthid  ·  29评论

tomcl picture tomcl  ·  26评论

sandeepc24 picture sandeepc24  ·  46评论

chrisvanderpennen picture chrisvanderpennen  ·  31评论

alfonsogarciacaro picture alfonsogarciacaro  ·  37评论