2012-02-14 23 views
1

私のソリューションの1つでVS2010 Premiumでコードカバレッジを取得できました。結果は出て、すべてうまくいった。これはしばらく前です。VS2010のコードカバレッジが機能しなくなりました - おそらくPEXをインストールした後

私はPoles & Molesをインストールし、これらのツールを少し使用して実験しました。つまり、チュートリアルなどを数多く完成しました。今、コードカバレッジの計算に同じテスト設定を使用しようとすると、次のメッセージが表示されます。 DLL 'Microsoft.VisualStudio.Coverage.Symbols.dll' をロードできません:

コードカバレッジ解析エンジンは、例外(複数可)を投げました。プロシージャが見つかりませんでした。

(HRESULTからの例外:0x8007007F)

( 'プロシージャは見つかりませんでしたが' ローカライズされたテキストの私の翻訳です)。

私は、VS2010が展開項目として不満を抱いているDLLファイルを含めることを試みましたが、テスト展開フォルダに表示されていることもわかりました。しかし、これは何も解決しませんでした。

コードカバレッジを計算しようとするプロジェクトに関係なく、これは一貫したエラーです。私はPEXをインストールする前に作業していたので、PEX/Molesが責任を負っていると思うし、コードカバレッジはもはやVS2010 IDEからは機能しません。もちろん、他にも理由があるかもしれませんが、他にも多くの拡張機能をインストールしていません。また、コードカバレッジと作業していない間の時間間隔は、PEXをインストールする私と多かれ少なかれ一致します。

これは、どこかのユーザー設定に関連していますか?私はIDEを再インストールしたときに気づいたことがありました。どこかで何かを削除する必要がありますか?

おそらく、私は自分のアセンブリをローカルに計測することを述べるべきです。チームサイトやTFSサーバーは関与していません。

上記の最後のリンクを:しかし、それらのどれもが直接私の問題に関連していないようだった私は、次のリンクを発見したソリューション、の検索

Microsoft.VisualStudio.Coverage.Symbols.dllファイルとMicrosoft.VisualStudio.Coverage.Analysis.dllファイルを同じ場所。どちらが私のマシン上で次の場所に配置されています

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies 

私のマシンは、実際には64ビットマシンである、しかし、上記のファイルは、32ビットの場所に位置しています。これが原因だろうか?

は、この問題解決に任意の助けてくれてありがとう

編集2012-02-16(全くPEXに関連していない可能性があります!):私は私のテストを実行することができるよと、私もやります関連する場所で生成されたdata.coverageファイルを取得します。ただし、データをダブルクリックすると発生します。カバレッジエクスプローラでファイルとVS2010(コードカバレッジ結果ウィンドウ)でそれを拡大しようと、私は、次のエラーメッセージが表示されます。

コードカバレッジ解析エンジンは、例外(複数可)を投げた:DLLの

画像ファイル「名私が楽器にしたいファイルは見つかりませんでしたか?

私のテスト結果のアウトフォルダーを見ると、上記のエラーメッセージに記載されているDLLが実際に存在することがわかります! .instrファイルもありますが、これは実際に行われた計測です。

私は現在、権利がないため、C:\ Windows \ system32のdbghelp.dllファイルを上書きできません。私はtestsettingsの配備項目としてMicrosoft Visual Studio 10.0 \ Common7 \ IDEの下にあるdbghelp.dllファイルも含めてみました。 dbghelp.dll(配備アイテムとして追加したMicrosoft.VisualStudio.Coverage.Symbols.dllも同様)は、両方ともTestresults outフォルダに存在します。しかし、私はまだ上記のエラーメッセージを取得します。

編集2012-02-17 は、私は、DLLの同僚のコンピュータ

  • Microsoft.VisualStudio.Coverage.Symbols.dll
  • dbghelp.dll
に下記のバージョンをチェックします

同じ場所に同じバージョンがあります。プロジェクトを私たちのソースリポジトリ(テスト設定を含む)から彼のマシンに抽出すると、彼はプロジェクトでテストを実行し、続いてVS2010でコードカバレッジを表示できました。だから、犯人はおそらくdll自体ではなく、むしろVisual Studio環境内で変わったものでしょうか?

編集2012-02-17 それは、私の同僚のマシンではなく、鉱山で、この作業の理由が原因GACに登録されたDLLのバージョンの不一致になることが示唆されました。私はGACの内容を抜き出し、Guiffyを使って差分を得るには、およそのリストで終わりました。 100 dllの不一致。これらのどれもバージョンではなく、どれもこの記事で言及されたdllに関係していません。 私の同僚は、64ビットバージョンのPEXをインストールしようとしましたが、1回の探索を完了し、その後テストプロジェクトのコードカバレッジを表示することができました。コードカバレッジでは、元のVS2010機能を参照し、コードカバレッジを表示するにはPEXの機能を参照しません。だから私はPEXのこの種のルールを推測するが、VS2010のコードカバレッジの結果を取り戻すのにまだ役に立たない。 :-(

編集2013年10月22日 私はVS2010インストールおよびRの#7.1.1000.900で新しいWindows 8マシンを割り当てられてきた。私はPEXをインストールしていないと私は同じエラーを取得します。これは、Testsettingsファイルのいくつかの厄介な設定に関連する可能性がありますか?私はResharperでユニットテストをdiabledしようとしましたが、同じエラーが発生しました...

+0

rの前に出力フォルダにアセンブリをコピーしようとしましたか?テストを実施する。このようなシナリオでは、実際のプロジェクト参照ではありませんが、コードを再作成するときに追加されるシナリオでは、常にコピーのビルドアクションを使用してアセンブリを追加します。 –

+0

上記のコードカバレッジ生成はPEX/Molesを使用しないことに言及していません。 VS2010 Premiumの基本機能を使用してVS2010にコードカバレッジを生成させることができません。私は自分のテストセットを構成しており、PEX/Molesをインストールする前にコードカバレッジが正しく生成されています。だから私はPEX/Molesを自分のコードの計装に使っていません。しかし、私はPEXのインストールがどうにかして正常なVS2010の動作を変更し、上記のエラーメッセージを引き起こしたと思われます。 – llykke

+0

@Shaun Wilde:私はあなたの提案を試みましたが、投稿に記載されているのと同じエラーが表示されます。 – llykke

答えて

0

Pexと何か関係があります。 Windows\system32ディレクトリのdbghelp.dll\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDEの新しいバージョンに置き換えてみてください。

+0

を使用しています。VS2010 \ Common7 \ IDEのファイルバージョンは6.12.2.633(03-03-2012)です。 Windows \ System32のバージョンは6.1.7601.17514(20-11-2010)です。私はあなたの提案を試してみます – llykke

+0

私が編集した記事で言及したように、私の同僚はコードカバレッジを取得して、それを自分のものと全く同じバージョンのDLLで表示することができました。したがって、どこにでもファイルをコピーする必要はありません。いずれにしても、ユーザーTrustedInstallerのみがdbghelp.dllファイルをC:\ Windows \ System32に上書きすることができます。そして、それは私ではありません:-( – llykke

+0

エラーメッセージは間違いなくアセンブリバージョンの不一致を指しています。あなたとあなたの同僚のマシン上のGACを比較します。[tool](http://gaccompare.codeplex.com /)または単に[ここ](http://stackoverflow.com/questions/6598979/compare-gacs-from-two-servers)に記載されているようにgacutilを使用してください(あなたは管理者権限が必要かもしれないと思います...) – shamp00

関連する問題