5

私のTFS2010ビルドは不可解に失敗しています。ユニットテストに合格しています。警告やエラーはありません。ビルドは最初から最後まで完全に実行されますが、部分的に成功しています。エラーを見つけるのに少し時間がかかりました。テスト結果をダウンロードしてから、上部にある[テスト実行エラー]というラベルの付いたリンクをクリックする必要がありました。エラーは次のとおりです。

Error   01/14/2013 1:31:47 AM   The diagnostic data adapter 'Microsoft.VisualStudio.TestTools.CodeCoverage.CoveragePlugIn, Microsoft.VisualStudio.QualityTools.Plugins.CodeCoverage, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' on agent 'BuildServer3' threw an exception during type loading, construction, or initialization: System.IO.FileLoadException: Could not load file or assembly 'Microsoft.VisualStudio.QualityTools.Plugins.CodeCoverage, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Microsoft.VisualStudio.QualityTools.Plugins.CodeCoverage, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName)
   at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
   at System.Type.GetType(String typeName, Boolean throwOnError)
   at Microsoft.VisualStudio.TestTools.DataCollection.ExecutionPluginManager.LoadAndInitDataCollectorAsync(TestRun testRun, String collectorTypeName, Dictionary`2 dataCollectorCache)

これはVisualStudio2012ソリューションからのものであり、ビルドサーバーはVisual Studio 2010を実行します...したがって、それが失敗する理由だと思います。

4

1 に答える 1

6

私は問題を理解しました。

CodeCoverage.testsettingsビルド中にコードカバレッジを測定するためのファイルを作成しましたが、Visual Studio 2012でファイルを作成しました。お気に入りのテキストエディターを使用して、ファイル内にこのエントリを見つけました。

<DataCollector uri="datacollector://microsoft/CodeCoverage/1.0" assemblyQualifiedName="Microsoft.VisualStudio.TestTools.CodeCoverage.CoveragePlugIn, Microsoft.VisualStudio.QualityTools.Plugins.CodeCoverage, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" friendlyName="Code Coverage (Visual Studio 2010)">

そこに11.0.0.0のバージョンが表示されました(これはVisual Studio 2012によって生成されたものである必要があります)。テキストエディタを使用して10.0.0.0に変更しました。

<DataCollector uri="datacollector://microsoft/CodeCoverage/1.0" assemblyQualifiedName="Microsoft.VisualStudio.TestTools.CodeCoverage.CoveragePlugIn, Microsoft.VisualStudio.QualityTools.Plugins.CodeCoverage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" friendlyName="Code Coverage (Visual Studio 2010)">

これで、ビルドは期待どおりに機能します。

于 2013-01-16T00:30:28.087 に答える