2009-08-03 12 views
2

VB.NETコンソールアプリケーションを実行しているときに「メソッドが見つかりません:ブールMyCompany.LibraryAssembly.SomeFunction(System.String)」の例外/エラーが発生します。アセンブリをロードするときにVB.NETメソッドが見つかりません

このメソッドは外部アセンブリの一部であり、アセンブリ内にあります。エラーは、メソッドを呼び出す関数を入力するときに実行時にのみ発生します。
プロジェクトで参照されているアセンブリがあり、ローカルにコピーしていません。 Intellisenseはエラーを表示せず、どちらもコンパイラを実行しません。アセンブリを静的にロードするのではなく、動的にロードしています。

同じバージョンがGACからも入手できますが、ローカルフォルダ(GACではなく)から参照しています。

私が何を確認するかについてのご意見はありますか?

答えて

2

解決策は、同じバージョンのローカルアセンブリを使用してGACを再度更新することでした。私は、アセンブリファイルをC:\ Windows \ Assemblyフォルダにドラッグアンドドロップすることでこれを行いました。 &を実行した後、私のコンソールアプリケーションを再構築すると問題は解決しました。 GACのアセンブリが既にローカルバージョンと同じバージョン番号を表示していたために不思議でした。

1

これは.NET版ですか?

メソッド名からは、メソッドがModuleで定義されているように見えますか?
ネット上でいくつかの(古い)参照が見つかりましたが、モジュール関数はアセンブリの外部からアクセスできません。 しかし、VS2008でこれをテストしたところ、正常に動作しました。

モジュールは共有メソッドでNotInheritableクラスにコンパイルされます。モジュール/クラス名を含むメソッドを参照し、違いがあるかどうか確認してみてください。

強力なアセンブリ名を使用する場合は、GACからのロードが優先されます。可能であれば、古いバージョンを使用していないことを確認するために、GACからアセンブリを削除してください。

0

&をもう一度追加してみてください。そうしている間、オブジェクトの.NETバージョン情報を参照してください。その後、あなたのアプリのバージョンと比較してください。関数がアクセス可能な場合

(私もGACのDIのバージョンを確認してください。GACは、この程度usreローカルfolder..Not以上presedenceがあると思います。)

もチェックし(それが保護または内部機能することができます)

+0

関数にアクセスできない場合は、間違いなくコンパイラエラーが発生します。 – Thorarin

+0

合意しました。しかしちょうどいくつかのアイデアを投げかけています。 –

0

いつもきれいにして再構築すると、私のための例外が見つかりませんでした。

0

実行中のアプリケーションのbinに古いアセンブリが含まれていると思います。新しいアセンブリをアプリケーションビンにコピーします。

関連する問題