FSharp Interactive 无法启动;找不到 System.Runtime.dll
FSharp Interactive won't start; can't find System.Runtime.dll
我已经通过 Visual Studio 2017 安装程序安装了 FSharp 4.1,但 FSI 拒绝启动:
PS C:\Program Files (x86)\Microsoft SDKs\F#.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#.1
不存在,重新安装F#4.1
- 卸载我安装的所有版本的 .NET Core
- 删除
C:\Program Files (x86)\Microsoft SDKs\F#.0
目录,该目录似乎没有适合它的安装程序。 (该目录中的 FSI 在删除之前工作...)
我已将融合日志转储到一个 zip 文件中并放入 on my Google Drive。有一大堆失败的绑定,System.Runtime, Version 4.1.0.0
就是其中之一。
此处提交问题:https://github.com/Microsoft/visualfsharp/issues/3178
因此那里正在执行的二进制文件是编译器的 coreclr 版本。而那个目录下vs安装的编译器版本就是桌面版的编译器。
我假设 coreclr 版本以某种方式被复制到那里。要修复它,我会这样做:
* 运行 vs 设置,deselect F# 编程工具。
一旦 VS 安装程序卸载了 F#。
删除编译目录:"C:\Program Files (x86)\Microsoft SDKs\F#.1"
重新运行 vs 安装程序和select F# 编程工具。
如果在那之后它仍然重现,那么在 https://github.com/Microsoft/visualfsharp
打开一个问题
谢谢
凯文
此问题现已解决 over at github,但为了完整起见,这里有一个摘要。
问题是我出于某种原因在 GAC 中注册了 FSharp.Core 4.1.0.0:
C:\Program Files (x86)\Microsoft Visual Studio17\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"
之后,FSI 和 dotnet new
开始正常工作。为了让 Visual Studio 正常工作,我还必须修复我的 VS 安装并重新启动,现在一切正常。
我已经通过 Visual Studio 2017 安装程序安装了 FSharp 4.1,但 FSI 拒绝启动:
PS C:\Program Files (x86)\Microsoft SDKs\F#.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#.1
不存在,重新安装F#4.1 - 卸载我安装的所有版本的 .NET Core
- 删除
C:\Program Files (x86)\Microsoft SDKs\F#.0
目录,该目录似乎没有适合它的安装程序。 (该目录中的 FSI 在删除之前工作...)
我已将融合日志转储到一个 zip 文件中并放入 on my Google Drive。有一大堆失败的绑定,System.Runtime, Version 4.1.0.0
就是其中之一。
此处提交问题:https://github.com/Microsoft/visualfsharp/issues/3178
因此那里正在执行的二进制文件是编译器的 coreclr 版本。而那个目录下vs安装的编译器版本就是桌面版的编译器。
我假设 coreclr 版本以某种方式被复制到那里。要修复它,我会这样做: * 运行 vs 设置,deselect F# 编程工具。
一旦 VS 安装程序卸载了 F#。
删除编译目录:"C:\Program Files (x86)\Microsoft SDKs\F#.1"
重新运行 vs 安装程序和select F# 编程工具。
如果在那之后它仍然重现,那么在 https://github.com/Microsoft/visualfsharp
打开一个问题谢谢
凯文
此问题现已解决 over at github,但为了完整起见,这里有一个摘要。
问题是我出于某种原因在 GAC 中注册了 FSharp.Core 4.1.0.0:
C:\Program Files (x86)\Microsoft Visual Studio17\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"
之后,FSI 和 dotnet new
开始正常工作。为了让 Visual Studio 正常工作,我还必须修复我的 VS 安装并重新启动,现在一切正常。