【发布时间】:2021-06-03 03:15:07
【问题描述】:
Hej,我有一个 YML 管道,但我在使用 FSI.exe 运行 f# 脚本时遇到问题。
问题是不可靠,运行管道时有时会出现fsi.exe not found。有时它会在没有事先更改代码或 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 路径)
trigger:
branches:
include:
- main
pool:
name: Hosted Windows 2019 with VS2019
demands:
- npm
- msbuild
- visualstudio
- vstest
variables:
BuildPlatform: 'any cpu'
BuildConfiguration: 'release'
Solution: '.......sln'
targetFolder: .........'
fsiPath: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsi.exe'
steps:
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: '$(Solution)'
- task: isaacabraham.fsharp-helpers-extension.1ba72b0a-f476-4a91-90a0-b8e7a0cc4337.FSharpScript@1
displayName: '.....'
inputs:
ScriptFile: '$(targetFolder)/target/script.fsx'
ScriptArguments: '/target="$(env)" /method=client /id="$(DevOps-ClientID)" /secret="$(DevOps-ClientSecret)"'
FsiPathSelection: Custom
CustomPath: '$(fsiPath)'
【问题讨论】:
-
这是 .NET Core 还是 .NET 5?
fsi.exe不再是东西,你应该将它作为dotnet工具运行,比如dotnet fsi path/to/my/script.fsx -
.NET Framework 项目仍需要
fsi.exe(或fsiAnyCpu.exe用于 64 位)。dotnet fsi仅适用于 .NET Core/.NET 5。 -
是.net framework 4.62
标签: azure-devops f# yaml azure-pipelines