如何强制Azure Pipeline的VSTest@2任务为AnyCPU项目以x86进程运行?
问题原因说明
你之前配置的platform参数仅用于匹配测试结果的元数据筛选,不会控制测试进程的运行架构,所以无法达到和Visual Studio中Processor Architecture for AnyCPU Projects设为x86等效的效果。
解决方案
你可以通过以下三种方式实现VSTest以x86进程运行测试,按优先级选择即可:
- 直接配置VSTest@2任务的
testRunPlatform参数
这是官方推荐的标准配置,专门用于指定测试运行的目标架构,修改你的任务配置如下:
- task: VSTest@2 displayName: 'VSTest (Release)' inputs: configuration: 'Release' testRunPlatform: 'x86'
- 通过命令行参数传递架构指定
如果第一种方式不生效,可以通过otherConsoleOptions参数给vstest.console.exe传递原生命令行参数:
- task: VSTest@2 displayName: 'VSTest (Release)' inputs: platform: 'x86' configuration: 'Release' otherConsoleOptions: '/Platform:x86'
- 使用.runsettings配置文件
如果需要统一本地开发和流水线的测试配置,可以在项目根目录新增.runsettings文件,内容如下:
<?xml version="1.0" encoding="utf-8"?> <RunSettings> <RunConfiguration> <TargetPlatform>x86</TargetPlatform> </RunConfiguration> </RunSettings>
之后在VSTest任务中指定该配置文件即可:
- task: VSTest@2 displayName: 'VSTest (Release)' inputs: configuration: 'Release' runSettingsFile: '$(Build.SourcesDirectory)/test.runsettings'
注意事项
- 如果你使用自托管代理,需要确认代理环境已安装x86版本的VSTest控制台组件,微软托管的Windows代理默认已包含相关组件无需额外配置。
- 配置生效后可以去掉你之前临时添加的
Environment.Is64BitProcess判断代码。
内容的提问来源于stack exchange,提问作者LorneCash
相关产品推荐
相关产品推荐

