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

时间:2015-01-24 02:50:33

标签: f# f#-fake

我分叉并克隆了FAKE - F# Make Github Repo,以便我可以回馈它。我跟着contributing instructions here。但是,我几乎立即遇到了障碍。当我运行build.cmd时,我收到以下错误。

1) Building ./FAKE.Deploy.Web.sln failed with exitcode 1.
2) FS0039: C:\Development\FAKE\src\deploy.web\Fake.Deploy.Web.Abstractions\AccountModels.fs(9,3): The type 'CLIMutable' is not defined
3) FS0039: C:\Development\FAKE\src\deploy.web\Fake.Deploy.Web.Abstractions\AccountModels.fs(17,3): The type 'CLIMutable' is not defined
4) FS0039: C:\Development\FAKE\src\deploy.web\Fake.Deploy.Web.Abstractions\AccountModels.fs(30,3): The type 'CLIMutable' is not defined
5) FS0039: C:\Development\FAKE\src\deploy.web\Fake.Deploy.Web.Abstractions\AccountModels.fs(37,3): The type 'CLIMutable' is not defined
6) FS0039: C:\Development\FAKE\src\deploy.web\Fake.Deploy.Web.Abstractions\Model.fs(9,3): The type 'CLIMutable' is not defined
7) FS0039: C:\Development\FAKE\src\deploy.web\Fake.Deploy.Web.Abstractions\Model.fs(16,3): The type 'CLIMutable' is not defined
8) FS0039: C:\Development\FAKE\src\deploy.web\Fake.Deploy.Web.Abstractions\Model.fs(36,3): The type 'CLIMutable' is not defined
9) FS0039: C:\Development\FAKE\src\deploy.web\Fake.Deploy.Web.Abstractions\Model.fs(64,3): The type 'CLIMutable' is not defined
10) FS0039: C:\Development\FAKE\src\deploy.web\Fake.Deploy.Web.Abstractions\Model.fs(70,3): The type 'CLIMutable' is not defined

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

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

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

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

1 个答案:

答案 0 :(得分:0)

经过进一步检查,问题似乎是回购中的几个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快速修复该问题。