MSTest を使用して、ソリューションに対して自動テストを実行します。ソリューションの一部のプロジェクトは .NET 3.5 を対象としており、Newtonsoft.JSON.dll バージョン 4.0.8 を参照しています。他のプロジェクトは .NET 4.0 をターゲットとしており、Newtonsoft.JSON.dll バージョン 4.5.7 の署名付きバージョンを参照しています。MSTest をすべてのテストに対して実行すると、新しいバージョンの Newtonsoft を使用したテストは次のエラーで失敗します。
System.IO.FileLoadException: System.IO.FileLoadException: ファイルまたはアセンブリ 'Newtonsoft.Json、Version=4.5.0.0、Culture=neutral、PublicKeyToken=30ad4fe6b2a6aeed' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)。
しかし、新しいバージョンの DLL を実行するテストだけを実行すると、正常に実行されます。Test/OUT ディレクトリを調べたところ、実行に失敗した場合は Newtonsoft DLL の以前のバージョンのみが存在し、実行に成功した場合は DLL の新しいバージョンのみが存在することが確認されました。
では、どうすれば、1) MSTest に毎回適切なバイナリを強制的にコピーさせるか、2) MSTest に同じバイナリの異なるバージョンを並べて取り込むように強制することができますか?
ティア。