解決したいエラー
System.IO.FileLoadException: ファイルまたはアセンブリ 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'、
またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040)
開発環境
- Visual Studio 2017
- Visual Basic
- .NET Framework 4.7
発生条件
- ビルドで出力されたexeを開発環境で実行する時には発生しません。
- exeを同じフォルダ内にコピーしてそれを実行したときに発生します。(とても不思議です)
- またビルドされたexeが格納されたフォルダ一式を他のPCにコピーして実行したときに発生します。
発生タイミング
- System.Text.Jsonを使用しているのですが、下記最終行の「JsonSerializer.Serialize」を呼び出すタイミングで発生します。
VB
1 order = New JsonParamNewOrder 2 order.clientOid = Strings.Left(Guid.NewGuid.ToString, 8) 3 order.symbol = "BTC-USDT" 4 order.side = eSide.buy.ToString 5 order.funds = "0.009" 6 body = JsonSerializer.Serialize(order) 7
参照しているUnsafeのバージョン
- 5.0.0.0
やってみたこと
- インターネットの記事を見てapp.configを下記のように書き換えてみましたが改善しませんでした。
XML
1 <dependentAssembly> 2 <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 3 <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> 4 </dependentAssembly> 5
↓↓↓
XML
1 <dependentAssembly> 2 <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 3 <bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="5.0.0.0" /> 4 </dependentAssembly> 5
- VisualStudioで新規プロジェクトを作成し、Nugetで4.0.4.1のバージョンをインストールし、ダウンロードされたdllを動作させたいプロジェクトの実行フォルダに上書きしましたが改善しませんでした。
バージョン依存関係の妥当性の確認
- Nugetパッケージマネージャで確認すると以下の通りSystem.Text.Jsonは.NET Framework 4.6.1に依存とあります。ですので、当該環境で問題ない認識です。また、UnsafeもJsonを使ううえでは5.0.0以上が求められているので問題ない認識です。(Nugetパッケージマネージャを利用しているので自動的に適したものがインストールされていると思っています。
すみませんがご存じの方、ご回答いただければ幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー