azure-devops - VSTS SpecFlowPlus:与您当前的操作系统“Windows(X86)”不兼容
问题描述
在我的 VSTS 服务器上,SpecFlowPlus 任务失败并出现以下错误:
未找到受支持的任务执行处理程序。该任务不包含与您当前的操作系统“Windows(X86)”兼容的实现。有关更多详细信息,请联系任务作者。
问题:
- 如何让 SpecFlowPlus 任务运行?
- 或者如何确保 VSTest 任务在 x84 模式下执行?
细节:
- 我意识到“任何 CPU”被设置为平台,所以我将所有位置更改为 x86。
VSBuild Tasks似乎没问题,并将编译后的工件放入 x86 文件夹:
- 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'
解决方案
我认为发生错误是因为 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
推荐阅读
- javascript - 控制器能做哪些指令不能做的事情?
- c# - 数据绑定问题,未找到有效属性
- go - 如何在我的 go 程序中消除对 wpcap.dll 的需求?
- python - tf.identity 可以用来复制内存中的变量(Tensorflow)吗?
- arrays - 如何将 ObjectId 引用的数组发布到节点 js 中的现有集合
- android - 当用户接受 READ_EXTERNAL_STORAGE 权限时,需要重新启动应用程序
- php - 带有查询的 api 端点的 PHP REST 包装器
- javascript - Selenium with headless chrome,window.chrome 未定义
- css - 无法从自动完成列表中选择名称
- github - 在 Github 上的 Markdown 中制作目录时转义一个句点