首先,让我在这篇文章的前言中说,我在TeamCity论坛上看到了关于这个问题的各种讨论,在这里,似乎没有什么对我有用。
我有一个C#.Net解决方案,并在TeamCity中配置了两个步骤,一个构建步骤和一个单元测试步骤。在运行NUnit测试时,我在TeamCity中得到以下错误:
步骤2/2开始: C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe #TeamCityImplicit目录中的步骤2/2 :C:\TeamCity\buildAgent\work\主干步骤2/2 2013-02-23 18:00:11 827 4972警告JetBrains.TeamCity.Utils.PE.PEReader -未能解析程序集文件:可执行文件(.exe)或库(.dll)的格式为步骤2/2 System.BadImageFormatException:可执行文件(.exe)或库(.dll)的格式无效。步骤2/2 Mono.Cecil.PE.ImageReader.ReadImage() in c:\BuildAgent\work\4fb4fc7600eac5a9\src\Utils\src\PE\ImageReader.cs:line 84步骤2/2 ( JetBrains.TeamCity.Utils.PE.PEReader.DescribeAssemblyRuntime(String assemblyFile) in c:\BuildAgent\work\4fb4fc7600eac5a9\src\Utils\src\PE\PEReader.cs:line 22步骤2/2启动TeamCity NUnit测试运行程序步骤2/2运行NUnit-2.6.2在.NET Frameworkv2.0 x64步骤2/2下进行测试 中运行测试的##teamcitybuildStatus text='NUnit error,{build.status.text}‘status=' error’NUnit错误 “...UnitTests.csproj”程序集加载程序集是为 未能解析程序集文件:可执行文件(.exe)或库(.dll)的格式无效。NUnit runner运行时为v2.0.50727,x64 System.BadImageFormatException:无法加载文件或程序集 “...UnitTests.csproj”或其依赖项之一。试图加载格式不正确的程序。文件名: '....UnitTests.csproj‘-> System.BadImageFormatException:无法加载文件或程序集'....UnitTests.csproj’或其依赖项之一。试图加载格式不正确的程序。文件名:“....UnitTests.csproj”
我正在运行TeamCity 7.1.4。我使用的是Visual 2012,我的当前配置是64位。我使用的是nunit 2.62运行时版本2.0。
我已经将我的TeamCity设置配置如下:
MSBuild步骤:.NET Frameworrk 4.5运行平台: x64
NUnit步骤: NUnit运行程序: 2.6.2 .NET运行时: Platform x64版本: v2.0
当与resharper一起运行时,单元测试全部通过。
我知道BadImageFormatExceptions通常与在x86中编译64位项目相关,反之亦然,因此我尝试了解决方案配置管理器和team中的各种设置的64/x86设置的每个组合。似乎不管我的设置如何,我都会犯这个错误。有人有什么想法吗?
发布于 2013-02-24 21:43:25
这要感谢@adrianbank。结果,我指向.csproj文件来执行测试。按照禤浩焯的说法,我将TeamCity配置为指向单元测试dll,一切都正常。
https://stackoverflow.com/questions/15056780
复制相似问题