无法加载文件或程序集 FSharp.Core,版本=4.0.0.0。

42

我正在尝试在运行Windows Server 2008的服务器上部署一个使用F# 4.0的Web应用程序。

在我的电脑上安装有VS2010,它可以正常工作,但在服务器上无法正常工作。每次打开页面时都会出现以下错误信息:

无法加载文件或程序集“FSharp.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或其某个依赖项。系统找不到指定的文件。

我已经使用Web平台安装程序安装了.NET 4。也安装了F# PowerPack。

我找到了这个页面:http://connect.microsoft.com/VisualStudio/feedback/details/507202/error-in-working-with-f 它建议重新安装F#,但下载F#的链接似乎已经失效了。而且这可能不是我遇到的同样问题。

我还尝试安装了Microsoft F# 2.0.0.0,因为这是我唯一能找到的F#再分发版。但它完全没有帮助。

有人能够让类似这样的东西工作吗?

8个回答

21

我需要版本为 4.0.0FSharp.Core,因此我通过Nuget在我的Visual Studio 2010中安装了它:
http://nuget.org/packages/FSharp.Core

或在Package Manager Console中运行以下命令:
PM> Install-Package FSharp.Core

然后发布项目并上传 FSharp.Core.dll


对我来说有效,安装了FSharp.Core6.0.0版本在Visual Studio 2022中,并修复了此错误消息:“未处理的异常。无法打印异常字符串,因为Exception.ToString()失败。”。 - Stephen Hosking

20

谢谢,这就是我想要的。:D我没有找到合适的版本,我找到的是“F# 2.0 for Windows + Visual Studio 2008(2010年4月发布版)”,它来自http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/release.aspx既然F#是.NET 4上的一流编程语言,所以我最初认为它会被包含在.NET 4运行时中。 - Ken

4

我曾经遇到过同样的问题,最终通过以下方法解决:

  1. 在Web项目中(我的是C#项目),添加对FSharp.Core的引用。
  2. 在FSharp.Core的引用属性中将Copy Local更改为True
  3. 构建并发布!

3

2

如果你在更新到VS 2019后遇到问题,这里有一些帮助:

我的情况是,我有一个引用了F#类库的C#控制台应用程序。在VS 2017中一切正常,但在VS 2019中,我突然遇到了如此多的程序集加载错误(针对FSharp.Core v4.7.0)。

问题的原因是,FSharp.Core DLL未能以某种方式复制到控制台应用程序的bin文件夹中(尽管我认为它应该这样做,但它并不会影响VS 2017)。由于NuGet包没有"copy local"或类似选项,所以我将其添加到了控制台应用程序中。虽然不好看,但可以解决问题。


你是什么意思,@Andrii? - Piedone
<Reference Include="FSharp.Core"> <HintPath>..\packages\FSharp.Core.4.7.0\lib\netstandard2.0\FSharp.Core.dll</HintPath> <Private>True</Private> </Reference> <参考 Include="FSharp.Core"> <HintPath>..\packages\FSharp.Core.4.7.0\lib\netstandard2.0\FSharp.Core.dll</HintPath> <Private>True</Private> </参考> - Andrii
啊,好的。奇怪的是,在我的(.NET Core)F#项目的fsproj文件中,没有任何关于FSharp.Core的引用(我猜测VS会根据它是fsproj自动加载)。可能更加复杂的是,C#控制台应用程序(引用F#库的那个)是.NET Framework。 - Piedone

2

我通过安装VS2010安装程序中的FSharpRedist2.0成功使其工作。它位于\WCU\FSharp。


1

1
在我的情况下,这是由于配置文件损坏所致。我删除了*.fsproj*.csproj文件中所有与F#有关的引用(包括绑定重定向),从NuGet重新安装了FSharp.Core包,一切都很顺利。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接