FSUnit.xUnit を使用して単体テスト プロジェクトを作成しようとしています。
このプロセスに関する私の開発中、私はこのメッセージで失敗するテストに悩まされてきました (常に同じバージョンを引用しているわけではありません):
Could not load file or assembly 'FSharp.Core, Version=3.259.4.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)
バインディング リダイレクトを追加しても効果がないようです。私の最新のものは次のとおりです。
<configuration>
<runtime>
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.4.0.0" newVersion="4.4.0.0" />
</dependentAssembly>
</runtime>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
</configuration>
これまでうまくいったのは、FSharp.Core NuGet パッケージをダウングレードすることだけですが、この最新の化身ではこれも失敗しています。
この問題で多くの時間を失っています。どんな助けでも非常に感謝しています。
アップデート
私が理解できることから、これは Json.NET のバグによるものです。テストは実行されていますが、判別共用体をシリアライズおよびデシリアライズしているときに、アセンブリ内でエラーがスローされています。Json.NET で問題を提出しました。
さらに更新
F# バージョン 4.4.0.0 を対象とするテスト プロジェクトから Json.NET シリアライザーを呼び出しています。シリアル化しようとしているオブジェクトは、Profile259 (portable-net45+netcore45+wpa81+wp8) を使用してポータブル アセンブリで定義されています。ポータブル アセンブリには、同じバインド リダイレクトが含まれています。