VSTS SpecFlowPlus:与您当前的操作系统不兼容 'Windows(X86)'

VSTS SpecFlowPlus: not compatible with your current operating system 'Windows(X86)'

在我的 VSTS 服务器上,SpecFlowPlus 任务 失败并出现以下错误:

A supported task execution handler was not found. The task does not carry an implementation that is compatible with your current operating system 'Windows(X86)'. Contact the task author for more details.

问题:

  1. 如何获取 SpecFlowPlus 任务 运行?
  2. 或者如何确保 VSTest 任务在 x84 模式下执行?

详情:

  1. 我意识到 "Any CPU" 被设置为平台,所以我将所有 placece 更改为 x86。

VSBuild Tasks 似乎没问题,并将编译后的工件放入 x86 文件夹中:

  1. VSTest 任务 以 x64 模式启动并无提示地失败并显示以下错误消息:

(摘自天蓝色-pipeline.yml)

- task: VSBuild@1
  inputs:
    solution: '**/*.sln'
    msbuildArgs: '/p:Platform=x86 /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: 'x86'
    configuration: 'Release'

- task: VSTest@2
  inputs:
    testAssemblyVer2: |
      **\Calculator.Spec.dll
      !**\obj\**
    platform: 'x86'
    configuration: 'Release'

- task: SpecFlowPlus@0
  inputs:
    projectFilePath: '$(System.DefaultWorkingDirectory)'
    projectLanguage: 'en'

我认为发生错误是因为 SpecFlowPlus 任务是在 x84 机器上执行的。 VSbuild 和 VStest 的任务版本不是导致错误的原因。

如果您仔细查看 SpecFlowPlus 任务执行日志。任务执行句柄实际上是Generate.ps1脚本,报错提示不支持x84平台。我在 x86 模式和 x64 模式 powershell 上本地尝试 运行 Generate.ps1,它确实在 x86 模式下失败了。

您可以在 x64 平台代理上尝试 运行 您的管道,看看效果如何。

Preparing task execution handler.
Executing the powershell script: C:\agent-mic\_work\_tasks\SpecFlowPlus_32f3fe66-8bfc-476e-8e2c-9b4b59432ffa[=10=].3.6/Generate.ps1