2

我已经通过 Visual Studio 2017 安装程序安装了 FSharp 4.1,但 FSI 拒绝启动:

PS C:\Program Files (x86)\Microsoft SDKs\F#\4.1\Framework\v4.0> .\fsi

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly
'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one
of its dependencies. The system cannot find the file specified.
   at Microsoft.FSharp.Compiler.Interactive.Shell.MainMain(String[] argv)

我假设我在 PATH 变量或其他东西中丢失了一些东西,但是尽管进行了几次重新安装和修复,我还是无法克服这个错误。

FSI 在哪里寻找这个 dll,我应该安装什么来把它放在那里?

更新:

我尝试了一些事情,结果没有改变:

  • 通过 VS 2017 安装程序删除 F# 4.1,验证C:\Program Files (x86)\Microsoft SDKs\F#\4.1不存在,然后重新安装 F# 4.1
  • 卸载我安装的所有版本的 .NET Core
  • 删除C:\Program Files (x86)\Microsoft SDKs\F#\4.0似乎没有安装程序的目录。(该目录中的 FSI 在删除之前工作...)

我已将融合日志转储为 zip 文件并将其放在我的 Google Drive 上。有一大堆失败的绑定,System.Runtime, Version 4.1.0.0就是其中之一。

此处提交的问题:https ://github.com/Microsoft/visualfsharp/issues/3178

4

2 回答 2

2

因此,正在执行的二进制文件是编译器的 coreclr 版本。而vs安装在那个目录下的编译器版本就是桌面版的编译器。

我假设以某种方式将 coreclr 版本复制到了那里。要修复它,我会这样做: * 运行 vs 设置,取消选择 F# 编程工具。

一旦 VS 安装程序卸载了 F#。

删除编译器目录:“C:\Program Files (x86)\Microsoft SDKs\F#\4.1”

重新运行与设置并选择 F# 编程工具。

如果之后仍然重复,请在https://github.com/Microsoft/visualfsharp上打开一个问题

谢谢

凯文

于 2017-06-02T19:20:32.933 回答
0

现在已经在 github 上解决了这个问题,但为了完整起见,这里有一个摘要。

问题是我出于某种原因在 GAC 中注册了 FSharp.Core 4.1.0.0:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise>gacutil /l FSharp.Core
Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.0
Copyright (c) Microsoft Corporation.  All rights reserved.

The Global Assembly Cache contains the following assemblies:
  FSharp.Core, Version=2.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
  FSharp.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
  FSharp.Core, Version=4.4.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL

Number of items = 3

第三个条目不应该在那里。我删除了:

gacutil /uf "FSharp.Core, Version=4.4.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"

之后,FSIdotnet new开始正常工作。为了让 Visual Studio 正常工作,我还必须修复我的 VS 安装并重新启动,现在一切正常。

于 2017-06-08T11:25:15.557 回答