3

我正在使用用 F# 编写的控制器为 Visual Studio MVC Web 项目构建项目系统。它非常酷。我可以构建和运行应用程序,但我在使用 FSharp 语言服务时遇到了问题。

在编辑器中,它按应有的方式显示语法着色和诊断。有一个问题 - 它不会获取项目引用。即使在构建过程中它会选择它们并成功构建项目,但在屏幕上它显示来自引用的程序集/项目的对象/命名空间为未解析。

如果这里有人对与 F# 语言服务集成有一些知识 - 请帮助我使其工作

回复托马斯:

F# 控制器的代码在项目文件中,正如我已经提到的,我可以编译和运行它。最初我们将 F# 代码保存在一个单独的项目中,并且希望摆脱这种额外的复杂性是促使这个项目的原因。它不是 ASP.MVC 虽然它是Bistro MVC

编辑

BistroMVC 现在在基于F# 项目扩展器的最新版 Bistro Designer 中解决了这个问题

4

2 回答 2

1

您是否将 F# 源代码保留为 Web 项目的一部分?我不确定这对于 ASP.NET MVC 是否可行,但在 ASP.NET WebForms 中是可行的。对于 WebForms 项目,它不能很好地工作(因为 F# 不知道项目上下文)。我相信可以通过像这样的 hacky #if 来克服这个问题:

#if EDITING
#r "Your.Referenced.Library.dll"
#endif

这只会作为对编辑器的提示......但是,在单独的 F# 项目中编写 F# 控制器会更好(如果可能的话)。在那种情况下,你不应该有任何问题(至少我希望如此!)

于 2010-01-16T13:10:46.483 回答
0

你能更详细地描述你在做什么吗?这是“调味”,还是新的项目系统?“项目环境”的其他方面是否得到重视?例如,如果您有 F# 代码

#if DEBUG
let x = 3
#else
let x = 4
#endif

当您将 VS 解决方案从 Debug 更改为 Release 时,颜色会发生变化吗?

(顺便说一句,我不确定是否可以将 F# 语言服务完全集成到用户定义的项目系统中;如果您想要更多讨论,可以发送电子邮件至 fsbugs@microsoft.com,我会在那里回复。)

于 2010-01-15T23:09:57.867 回答