私はGACにインストールする必要のあるアセンブリを開発しており、ビルド後の手順の一環として、ビルドのたびにGACが更新されるようにしています。(Visual Studio)単体テストを(個別のテストアセンブリで)作成して、テスト対象のクラスで新しいメソッドを呼び出し、テスト対象のクラス(TDDスタイル)にメソッドを実装してから、テストを実行する場合(CTRL R、 T)テスト中のアセンブリと単体テストプロジェクトがビルドされます(アセンブリはGACで更新されます)。
テストは失敗します(新しいメソッドに対してSystem.MissingMethodExceptionをスローします)。テストをデバッグすると、テストに合格し、その後、テストを実行でき、合格します。
調査の一環として、テストに無限ループを追加して実行しました。Process Explorerを使用して、テスト中に読み込まれるdllのパスを見つけました。C:\ WINDOWS \ assembly \ temp\4XY349E7C5にアセンブリへのハンドルがあることがわかりました。ここで見つけたトリックを使用してそのディレクトリを調べると、GACにあるよりも古いバージョンのdllが見つかります。また、Reflectorを使用してdllを調べると、MissingMethodExceptionを説明する追加した新しいメソッドが含まれていないことがわかります。
では、VSTestHost.exeが一時ディレクトリにdllをロードするのはなぜですか?正しいdllが使用されていることを確認する方法はありますか?