安装此版本后,不会生成任何涉及 F# 的内容,所有内容都会引发相同的异常:
error FS0193: Could not load file or assembly System.Buffers, Version=4.0.3.0, blablabla..
显然这与我正在构建的内容无关。即使尝试在 fsi 中执行let x = 3
.exe也有同样的问题。
还有其他人有这个问题吗?
是的,这是一个已知问题,请参阅 https://github.com/dotnet/fsharp/issues/9295。
虽然下一个修复程序尚未发布,但可以通过手动复制缺少的程序集来解决它。此注释中提到了缺少程序集的确切列表。Kevin Ransom 解释的原因是 MSBuild 的安装程序没有获得fsc.exe
的新依赖项。
请注意,Visual Studio 中的 FSI 不应该有这个问题,也不应该从 Visual Studio 2019 中构建。据我了解,只有 MSBuild 工具会受到影响。
对于后代,如果链接失效,Github问题的解决方法是复制dll:
copy "C:Program Files (x86)Microsoft Visual Studio2019BuildToolsCommon7IDEPublicAssemblies*.dll" "C:Program Files (x86)Microsoft Visual Studio2019BuildToolsCommon7IDECommonExtensionsMicrosoftFSharp"
编辑:上面给出的源路径可能并不总是正确的,具体取决于您安装的 VS 版本。或者,尝试:
- C:\Program Files (x86(\Microsoft Visual Studio\2019\Professional\Common7\IDE\PublicAssemblies
- C:\Program Files (x86(\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\PublicAssemblies
- C:\Program Files (x86(\Microsoft Visual Studio\2019\Community\Common7\IDE\PublicAssemblies
- C:\Program Files (x86(\Microsoft Visual Studio\2019\Preview\Common7\IDE\PublicAssemblies
如果您只想复制所需的最小集,只需复制这些文件,即差异集:
System.Buffers.dll
System.Memory.dll
System.Numerics.Vectors.dll
System.Reflection.Metadata.dll
System.Resources.Extensions.dll
System.Runtime.CompilerServices.Unsafe.dll
System.Threading.Tasks.Dataflow.dll