2010-11-26 6 views
1

私は長年にわたって完全に正常に動作している.NET CF 1.1アプリケーションを持っています。.NET CFアプリケーションがDLLを見つけることができないのはなぜですか?実行可能ファイルと同じディレクトリにありますか?

 
    Method not found: 
    MethodName 
    AssemblyNamespace.Class 

DLLがあり、そしてそれは私の他のデバイスと同じバージョンです:時々、私は(一般的な)次のエラーメッセージでヘルプデスクチケットを取得します。何が変わることができれば、その方法を見つけることができません。このエラーは、アセンブリがロードされたことを意味するのですか?

Visual Studio(2003、btw)でリファレンスをどのように追加したかは重要ですか? Copy Localがtrueに設定されているため、実行可能ファイルと同じディレクトリに置く必要があると仮定しました。

ご提供いただけるヘルプは高く評価されます。ありがとう。

編集:このDLLは、デバイスのWindowsディレクトリにもある可能性があります。

+0

「方法が見つかりません」はDLLの地獄の問題です。 –

答えて

1

Visual Studio 2003でリファレンスをどのように追加するかは関係ありません。(100%確信してください)
ここではあまり分かりません:私は他の誰かが電話のGACに同じアセンブリを持っていると思います。したがって、GACアセンブリは、配布したアセンブリではなく呼び出されます。アセンブリのバージョンには、要求された機能がありません。

+0

母は答えたとおりに私の質問を編集しました。そうだとすれば、私が知っているものをロードするように強制するにはどうしたらよいですか? – IronicMuffin

+0

そしてそのメモに...なぜそれは時々それだけをするのですか?私はそれがすべてのデバイス上のGACのだと思うでしょう... – IronicMuffin

+0

の注文のためのhttp://stackoverflow.com/questions/49972/in-what-order-are-locations-searched-to-load-referenced-dllsどのアセンブリが検索されます。いずれにしても、他のソフトウェアによって更新されている可能性があります。いくつかの電話では、ソフトウェアはそこにあります。他の人にはそうではありません。 – basarat

0

コード内のファイルの参照方法によって異なります。現在の作業ディレクトリに依存している可能性があります。これは、アプリケーションの起動方法や後の作業によって、期待したものとは異なる場合があります。

0

場合によっては、予想外のメモリ不足例外ではなく、デバイスがメモリ不足のときに.NetCfがこの例外をスローします。純粋なnetcf dllをロードするよりも、P/Invokeを使ってネイティブdllをロードすると、この動作がより頻繁に観察されています。

関連する問題