まず、TeamCity フォーラム内や SO でこのトピックに関するさまざまな議論を見てきましたが、何もうまくいかないようです。
私は C#.Net ソリューションを持っており、TeamCity 内にビルド ステップと単体テスト ステップの 2 つのステップを構成しました。NUnit テストを実行すると、TeamCity で次のエラーが発生します。
[ステップ 2/2] 開始:
C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe
#TeamCityImplicit [ステップ 2/2] ディレクトリ: C:\TeamCity\buildAgent\work\trunk [ステップ 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] c:\BuildAgent\work\4fb4fc7600eac5a9\src\Utils\src\PE\ImageReader.cs:line 84の
Mono.Cecil.PE.ImageReader.ReadImage() で[ステップ 2/2] JetBrainsで.TeamCity.Utils.PE.PEReader.DescribeAssemblyRuntime(String assemblyFile) 内
c:\BuildAgent\work\4fb4fc7600eac5a9\src\Utils\src\PE\PEReader.cs:line 22 [ステップ 2/2] TeamCity NUnit テスト ランナーを開始する [ステップ 2/2] .NET で NUnit-2.6.2 テストを実行するフレームワーク v2.0 x64 [ステップ 2/2]
##teamcity[buildStatus text='NUnit エラー、{build.status.text}' status='ERROR'] [ステップ 2/2] NUnit エラー実行中のテスト
'.. .UnitTests.csproj' assembly Loading assembly iscompiled for
アセンブリ ファイルの解析に失敗しました: 実行可能ファイル (.exe) またはライブラリ (.dll) の形式が無効です。NUnit ランナー ランタイムは v2.0.50727、x64
System.BadImageFormatException: ファイルまたはアセンブリ
'...UnitTests.csproj' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。ファイル名:
'....UnitTests.csproj' ---> System.BadImageFormatException: ファイルまたはアセンブリ '....UnitTests.csproj' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。ファイル名: '....UnitTests.csproj'
TeamCity 7.1.4 を実行しています。Visual Studio 2012 を使用していますが、現在の構成は 64 ビットです。nunit 2.62 ランタイム バージョン 2.0 を使用しています。
TeamCity 設定を次のように構成しました。
MSBuild ステップ: .NET Framework 4.5 実行プラットフォーム: x64
NUnit ステップ: NUnit ランナー: 2.6.2 .NET ランタイム: Platform x64 バージョン: v2.0
resharper で実行すると、単体テストはすべてパスします。
通常、BadImageFormatExceptions は x86 での 64 ビット プロジェクトのコンパイル、またはその逆に関連していることを知っているため、ソリューションの構成マネージャーとチーム シティ内のさまざまな設定の両方で、64/x86 設定のほぼすべての組み合わせを試しました。私の設定に関係なく、このエラーが発生するようです。誰にもアイデアはありますか?