2011-12-15 8 views
9

私が学んだことを共有したがっています。ここにはTypeLoadExceptionsに関する記事がたくさんありますが、それらのどれも私が必要とする答えがないようです。TypeLoadExceptionへの解決

このページには、いくつかの特に良い情報を持っていますが、特に私が見たものに対処していないようでしたし、私はそれを解決する方法(間違っている可能性):

TypeLoadException says 'no implementation', but it is implemented

私のためのソリューション単純でした:Visual Studio 2010がキャッシュしてアセンブリファイルを生成するために使用するファイルをすべて削除します。


問題の背景:

ここではいくつかのより多くの詳細です。

未処理の例外:System.TypeLoadException:アセンブリ[アセンブリ名]から タイプ[タイプ名]のメソッド[メソッド名]、バージョン= XXXX、 カルチャニュートラル、PublicKeyToken = =私は次のようにTypeLoadExceptionを見ていましたnullには実装がありません。

ILDASMを使用してアセンブリを見るまで、私は実装を行っていました。古いバージョンのDLLが、古いバージョンのouputフォルダに書き込まれていることがわかりました。私の出力フォルダはデフォルト設定ではなく、プロジェクトフォルダ外の相対パスでした(おそらくVSはこれを完全に処理できません)。プロジェクトのクリーン/リビルドを実行した後、プロジェクトの「obj」フォルダは、プロジェクトフォルダのすべての子フォルダの中で、DLLの正しい日付スタンプを持つ唯一のフォルダでした。何らかの理由で「bin」フォルダに古いバージョンが残っていました。そして、私はそれが出力フォルダにコピーされたものだと思います。

はこの前私が試した:

  • クリーン/
  • は、Visual Studio(2010)
  • 出力フォルダに私のアセンブリDLLを削除
  • を再起動を再起動する再構築(ビン\ X86 \デバッグ)

...成功しません。

VSが "obj"の正しいアセンブリを出力フォルダにコピーしていない理由がわかりません...旧式のアセンブリを参照していたプロジェクトが正しいでした。

+2

解決策を質問に投稿しないでください。あたかも問題が発生しているかのように質問を投稿し、解決策を回答として投稿してください。1日かそれ以上待つ方がいいです。人々に自分の解決策を投稿する時間を与えてもらえれば、自分よりも優れた人がいるかもしれません。 – ChrisF

+0

私は@ChrisFに同意しなければなりません。最初に質問を投稿してから答えてください。答えが分かりました(それは私を助けましたが)あなたはそれについていくつかの名言を得ていました。考えていない。 – iMortalitySX

答えて

2

何らかのソースコントロールを使用していて、チェックインやチェックアウトを行っていますか?はいの場合は、objとbinフォルダがソースコントロールにチェックインされていないことを確認してください。ソースコントロールから削除する場合は、すべてを確認して、ソリューションを再ビルドします。

0

Visual Studio 2015でこのような問題が発生しました。解決方法としてNuGetパッケージマネージャを使用して、別のバージョンにインストールされていたパッケージを再インストールして解決しました。

関連する問題