当我尝试在Windows上运行FAKE的build.cmd时,未定义类型'CLIMutable'



我分叉并克隆了 FAKE - F# Make Github Repo,以便我可以潜在地回馈它。我按照此处的贡献说明进行操作。然而,我几乎立即遇到了障碍。当我运行build.cmd时,我收到以下错误。

1) Building ./FAKE.Deploy.Web.sln failed with exitcode 1.
2) FS0039: C:DevelopmentFAKEsrcdeploy.webFake.Deploy.Web.AbstractionsAccountModels.fs(9,3): The type 'CLIMutable' is not defined
3) FS0039: C:DevelopmentFAKEsrcdeploy.webFake.Deploy.Web.AbstractionsAccountModels.fs(17,3): The type 'CLIMutable' is not defined
4) FS0039: C:DevelopmentFAKEsrcdeploy.webFake.Deploy.Web.AbstractionsAccountModels.fs(30,3): The type 'CLIMutable' is not defined
5) FS0039: C:DevelopmentFAKEsrcdeploy.webFake.Deploy.Web.AbstractionsAccountModels.fs(37,3): The type 'CLIMutable' is not defined
6) FS0039: C:DevelopmentFAKEsrcdeploy.webFake.Deploy.Web.AbstractionsModel.fs(9,3): The type 'CLIMutable' is not defined
7) FS0039: C:DevelopmentFAKEsrcdeploy.webFake.Deploy.Web.AbstractionsModel.fs(16,3): The type 'CLIMutable' is not defined
8) FS0039: C:DevelopmentFAKEsrcdeploy.webFake.Deploy.Web.AbstractionsModel.fs(36,3): The type 'CLIMutable' is not defined
9) FS0039: C:DevelopmentFAKEsrcdeploy.webFake.Deploy.Web.AbstractionsModel.fs(64,3): The type 'CLIMutable' is not defined
10) FS0039: C:DevelopmentFAKEsrcdeploy.webFake.Deploy.Web.AbstractionsModel.fs(70,3): The type 'CLIMutable' is not defined

我有 Visual Studio 2012,它附带 F# 3.0。我确认 F# SDK 是通过在 F# 交互窗口中运行System.AppDomain.CurrentDomain.BaseDirectory安装的。结果是C:Program Files (x86)Microsoft SDKsF#3.0Frameworkv4.0.

据我所知,F# 3.0引入了CLIMutable属性。我在克隆源代码和运行构建之间没有对源代码进行任何修改。

我打开了假货。Web.部署解决方案并检查引用的位置。FSharp.Core.dll似乎是针对我没有的F# 4.3.1构建的。我怀疑这可能是问题的一部分。这个版本似乎是Visual Studio 2013附带的。我可以下载Visual Studio 2013社区版,但是是否可以获得最新版本的F#for Visual Studio 2012?

这甚至是问题所在吗?还有什么可能出错的?

经过进一步检查,问题似乎是存储库中的几个 F# 项目没有必要的库引用。具体来说,截至提交 8df8a2f 时,缺少以下内容。

  • 来自 Fake.Deploy.Web.fsproj
    • FSharp.Core.dll
  • 来自 Fake.Deploy.Web.Abstractions
    • FSharp.Core.dll
  • 来自 Fake.Deploy.Web.RavenDb.fsproj
    • FSharp.Core.dll
    • FSharp.Data.TypeProviders

NuGet 已经拉下了 FSharp.Core.dll所以我只需要添加对受影响项目的引用。FSharp.Data.TypeProviders.dll尚未下载,但我也可以使用 NuGet 快速解决此问题。

最新更新