Azure devops F#管道中缺少FSI.exe(有时)

Azure devops F#管道中缺少FSI.exe(有时),azure-devops,f#,yaml,azure-pipelines,Azure Devops,F#,Yaml,Azure Pipelines,嘿,我有一个YML管道,我用它运行f#脚本的FSI.exe有问题 问题是不可靠,有时在运行管道时找不到fsi.exe。其他情况下,只需重新运行代码或YML,就可以在不更改代码或YML的情况下成功 fsiPath: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsi.exe' 成功的例子: Pool: Hosted

嘿,我有一个YML管道,我用它运行f#脚本的FSI.exe有问题

问题是不可靠,有时在运行管道时找不到fsi.exe。其他情况下,只需重新运行代码或YML,就可以在不更改代码或YML的情况下成功

  fsiPath: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsi.exe'

成功的例子:

Pool: Hosted Windows 2019 with VS2019
Agent: Hosted Agent
Started: Today at 12:53 PM
Duration: 4m 59s

Job preparation parameters
2 artifacts produced
100% tests passed
失败的例子

Pool: Hosted Windows 2019 with VS2019
Agent: Hosted Agent
Started: Today at 2:12 PM
Duration: 1m 16s
所以我在这两种情况下都使用相同的代理

yml部分:(一些名称已经更改,但本质上是fsi路径的问题)


找到了一个解决方案,但不是很好

我一直遇到问题:找不到fsi.exe

有时它会连续运行10多次而没有任何问题,在第11次运行时突然被感染(我假设这是由于VM不同)

我的解决方法是将fsi.exe(其所有DLL)包含在ropo中并引用它们

添加文件夹(从我的本地PC) C:\ProgramFiles(x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp

Repo/Tools/Fsharp,然后我更改了我的fsipath

  fsiPath: "$(Build.SourcesDirectory)/Tools/FSharp/fsi.exe"
有人问了一个问题。在VS2019的最新版本中,
fsi.exe
的位置似乎已更改:

  • VS2019版本16.9.3:
    ..\Microsoft\FSharp\fsi.exe
  • VS2019版本16.10.0:
    …\Microsoft\FSharp\Tools\fsi.exe

这是.NET核心还是.NET 5
fsi.exe
不再是一种东西,您应该将其作为.NET Framework项目仍然需要的
dotnet
工具运行,如
dotnet fsi path/to/my/script.fsx
fsi.exe
(或64位
fsiAnyCpu.exe
dotnet fsi
仅适用于.NET Core/.NET 5。它是.NET framework 4.62
  fsiPath: "$(Build.SourcesDirectory)/Tools/FSharp/fsi.exe"