首页 > 解决方案 > VSTS SpecFlowPlus:与您当前的操作系统“Windows(X86)”不兼容

问题描述

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

未找到受支持的任务执行处理程序。该任务不包含与您当前的操作系统“Windows(X86)”兼容的实现。有关更多详细信息,请联系任务作者。

问题:

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

细节:

  1. 我意识到“任何 CPU”被设置为平台,所以我将所有位置更改为 x86。

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

在此处输入图像描述

  1. VSTest 任务以 x64 模式启动,并以静默方式失败,并显示以下错误消息:

在此处输入图像描述

(摘自 azure-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'

标签: azure-devopsazure-pipelinesspecflow

解决方案


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

如果您仔细查看 SpecFlowPlus 任务执行日志。任务执行handler其实就是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\0.3.6/Generate.ps1

推荐阅读