BinaryFormatterでデシリアライズする際にSerializationExceptionが発生

WPFアプリで、以下エラーが発生した。

Exception thrown: ‘System.Runtime.Serialization.SerializationException’ in mscorlib.dll
アセンブリ ‘OtherApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’ が見つかりません。

どうやら、バイナリで保存していたファイルをデシリアライズする際にエラーとなっているらしい。
エラー中にある、OtherAppというのは、今回開発しているアプリ(MyAppとする。)とは別のアプリ。
なんで、MyAppを起動しているのに、OtherAppのアセンブリが出てくるのだろうか…

で、例外を発生させている該当のバイナリファイルをテキストエディタで除いてみると、OtherAppの表記があるところがある…
そこを、テキストエディタで直接編集して、MyAppに変えてみたら、デシリアライズできた!
 
 
で、なぜこうなったか。

そもそも、OtherAppというのは、MyAppを複製してちょっとカスタマイズしたアプリであった。
で、バイナリデータを保存するパスが、複製元のMyAppと同じままになっていた。
すなわち、OtherAppでシリアライズしたバイナリファイルをMyAppでデシリアライズしようとしていたからダメだった。

…こんなことする人、他にいるかどうかわからんがメモ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

メインはWeb系エンジニアです。

コメント

コメント一覧 (2件)

  • こちらの記事、とても助かりました。
    私もAプログラムで書いたファイルをBプログラムで読もうとして、
    「見つかりません。」のエラーメッセージに困惑していました。
    言われてみれば当然でしたね。
    感謝です!!

    • お役に立って良かったです!お試し実装とかでドタバタやってると、ファイル保存先がかぶったりしちゃいますよね!

コメントする

目次