F#和Windows Azure

F#和Windows Azure,azure,f#,Azure,F#,我创建了一个新的WebAPI项目,该项目引用了我在F#中编写的一个组件。我在本地工作站上工作得很好。当我将其部署到Windows Azure时,我得到以下信息: <Error><Message>An error has occurred.</Message><ExceptionMessage>Could not load file or assembly 'FSharp.Core, Version=4.3.1.0, Culture=neutral,

我创建了一个新的WebAPI项目,该项目引用了我在F#中编写的一个组件。我在本地工作站上工作得很好。当我将其部署到Windows Azure时,我得到以下信息:

<Error><Message>An error has occurred.</Message><ExceptionMessage>Could not load file or assembly 'FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.</ExceptionMessage><ExceptionType>System.IO.FileNotFoundException</ExceptionType><StackTrace>   at System.Web.Http.ApiController.<InvokeActionWithExceptionFilters>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext()</StackTrace></Error>
发生错误。无法加载文件或程序集“FSharp.Core,版本=4.3.1.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。系统在system.Web.Http.ApiController.d_u1.MoveNext()中找不到指定的文件.system.IO.FileNotFoundException
---来自引发异常的上一个位置的堆栈结束跟踪---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Web.Http.Dispatcher.HttpControllerDispatcher.d_u0.MoveNext()中
有人有什么建议吗?我将F#.dll设置为复制本地。

也将F#.dll添加到主WebAPI项目中。否则,它就不会包含在上传到Azure的包中。

尽管F#是一种很棒的语言,但坦率地说,框架支持是一团乱。Core不随普通的.NET框架一起提供,而是作为一个单独的安装程序(例如)。从外观上看,WindowsAzure操作系统映像根本没有安装F#,或者至少没有编译代码所依据的版本


当目标计算机上没有必要的FSharp.Core版本时(当前在Windows Azure上是这样),您必须在上载的包中包含FSharp.Core.dll。除其他事项外,您必须确保在Visual Studio中正确设置生成操作。

我通过添加…引用添加了它,但仍然失败。然后我不得不回去,把它标记为“本地复制”,它成功了。谢谢你们两位。