我们正在将TeamCity代理从32位系统迁移到64位,并且由于OpenCover中的错误,一些构建开始失败。
这是堆栈跟踪:
E:/BuildAgent/work/7777662cc87ae003/tools/opencover/opencover.console.exe -returntargetcode -target:E:/BuildAgent/work/7777662cc87ae003/tools/nunit/nunit-console.exe -targetargs:“./ myTests.dll /framework=v4.0.30319 / noshadow / nologo / work = output /result:my-tests-results.xml”-filter:“+ [ something ] * - [* something。 Test ] *“ - output:results.xml -register:user
[10:43:16] [执行测试:覆盖]发生异常:失败 register(user:True,register:True,is64:False):2分析器组件; 您可能希望查看权限或使用-register:user 相反的选择。 C:\ Windows \ system32 \ regsvr32.exe / s / n / i:user “E:\ BuildAgent \工作\ 7777662cc87ae003 \工具\ opencover \ 86 \ OpenCover.Profiler.dll”
[10:43:16] [执行测试:覆盖] stack:at OpenCover.Framework.ProfilerRegistration.ExecuteRegsvr32(布尔 userRegistration,布尔寄存器,布尔值为64)
[10:43:16] [执行测试:覆盖] at OpenCover.Console.Program.Main(String [] args)
有趣的是: 1)我们正在使用' - register:user',如错误消息所示 2)虽然我们的新代理是64位系统,但例外表明寄存器方法被称为w
答案 0 :(得分:3)
通过注册64位opencover profiler修复了这个问题:
regsvr32 /s \{ToolsFolder}\OpenCover\x64\OpenCover.Profiler.dll