2

最近、アウトソーシング会社からプロジェクトを引き継ぎました。このプロジェクトでは単体テストに Moles と Pex を使用していますが、プロジェクトを始めて間もないため、私はフレームワークにあまり詳しくありません。

そうは言っても、私たちはこのプロジェクトを .Net 4 で実行するようにアップグレードするのに忙しいです。飛び出した問題のほとんどを解決しましたが、対処できない問題が 1 つあります。エラーが原因で、一部の単体テストをコンパイルできません。

ファイルまたはアセンブリ 'Example.Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

私を困惑させる部分は、それがプロジェクト参照であり、アセンブリが単体テストの出力ディレクトリにコピーされていることです。他のプロジェクト参照のほとんどが見つかり、機能するものと機能しないものの違いを見つけることができません。この問題が pex/moles フレームワークに関係しているかどうかはわかりませんが、言及したいと思います。

すべての参照を削除して追加し、ほくろアセンブリを再生成するという通常のことを試しました。

他の誰かがこの問題に遭遇しましたか? どんな助けでも大歓迎です。

EDIT1: OK、ビルド出力をさらに調査した後、モルではなく、正しく生成されていない .accessor ファイルのように見えます。Unit test project cannot find assembly under test (or dependencies)で尋ねられたのとまったく同じ問題が発生しますが、彼の問題とは異なり、アクセサーを削除しても問題は解決しません。

EDIT2:Publicize.exeというプログラムがそのエラーで失敗することが判明しました。それでも理由はわかりません。Fusion のログを見ると、アクセサーを生成しようとしている dll の作業ディレクトリを検索していないようです。私たちのソリューションの一連のアセンブリで手動で実行すると、一部のアセンブリでは機能しますが、他のアセンブリでは機能しません。ただし、機能するものと機能しないものの違いを特定することはできませんでした。

ありがとう

4

1 に答える 1

0

あ、はい。私はこの話を何度も読み、Tシャツを持っています。この問題を含む問題が発生した場合、私は通常の Moles 応急処置キットを実行します。

おそらく、この質問はいくつかの助けになるでしょう: 「現在対象とされているフレームワークではアセンブリが利用できない」というメッセージが表示されるのは私だけですか?

  • Moles フレームワークがワークステーションやビルド サーバーに正しくインストールされていることを確認します。
  • Moles アセンブリがビルドされていることを確認します (除外された「Moles Assemblies」ディレクトリを参照してください)。
  • ビルド プロファイルを確認してください。完全なフレームワーク プロファイルに設定する必要がある場合があります。
  • 出力先とビルド後のコマンドをトリプルチェックします-出力を別の場所にコピーするいくつかのソリューションがあるようです
  • まだ行っていない場合は、Visual Studio Pex/Moles 拡張機能を使用してみてください

侵襲的なすべて修正プロセスは、まったく新しいソリューション、プロジェクト、およびテスト プロジェクトを単純に作成し、既存のコード ファイルをそれらにコピーすることです。プロジェクト関連のさまざまなエラーを解決できる問題の数は驚くべきものです。基本的に、ソリューション全体のハード リブートです。

.NET 4 に更新しているので、4.5 に移行して、"Fakes" と呼ばれる Moles の製品版を使用することもできます。Fakes は、Visual Studio 2012 リリース候補に含まれています。この重要な機能はあまり注目されていません。

于 2012-06-22T20:45:34.860 に答える