パソコンのトラブル対処方法やヒントの紹介

社内SEの猫パンチ

Visual Studio

VB.NETでの「ADOのFieldsToInternalFieldsMarshalerを読み込めません」の対処方法

投稿日:

VB.NETからAccessのMDBにデータを挿入するプログラムにて、ADODB.FieldsToInternalFieldsMarshaler が読み込めないエラーが発生した場合の対処方法を解説します。

ADODB.FieldsToInternalFieldsMarshalerのエラー内容

ビルドはOKだが実行すると、MDBの操作のステップで下記のエラーが出力されて異常終了する。

System.TypeLoadException: アセンブリ MyApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' から型 >'ADODB.FieldsToInternalFieldsMarshaler' を読み込めませんでした。

参照設定として追加したADO関連のライブラリが読み込めないみたい。

今回のケースの場合は下図にある2つの参照設定が原因でした。

VB.NETのADO 参照設定

  • Microsoft ActiveX Data Ojects 2.8 Library
  • Microsoft ADO Extensions 2.1 for DDL and Security

参照プロパティからローカルコピーをTrueに設定

今回のエラーは参照プロパティにてローカルコピーをTrueに設定することで回避できます。

デフォルトでは相互運用型埋め込み設定となっているため、ローカルコピー項目は下図のようにグレイアウトされているはずです。

VB.NET 相互運用型埋め込み

相互運用型の埋め込みをFalseに設定するとローカルコピー項目のグレイアウトが解除されてTrueに設定できます。

ADO参照設定のローカルコピー

この方法で今回問題となっているADO関連の2つの参照設定をローカルコピーをTrueに設定します。

リビルドして再実行するとエラーが発生せずに処理が実行されると思います。

以上です。

-Visual Studio

Copyright© 社内SEの猫パンチ , 2018 All Rights Reserved Powered by AFFINGER5.