1

次のエラーが発生します。

表示名が「MyWinFormsAssembly」のアセンブリを、ID1のAppDomainの「LoadFrom」バインディングコンテキストで読み込めませんでした。失敗の原因は次のとおりです。System.IO.FileNotFoundException:ファイルまたはアセンブリを読み込めませんでした'MyWinFormsAssembly.Services.XmlSerializers 、Version = 1.0.0.0、Culture = neutral、PublicKeyToken =null'またはその依存関係の1つ。システムは、指定されたファイルを見つけることができません。

私はエラーをスキップできることを知っています。以前にXMLシリアル化を行っているときにこのエラーを受け取ったことがあることを知っています。しかし、これはWebサービス呼び出しで発生しています。

そのWebサービス呼び出しは失敗し続け、別のエラーが発生します。

ファイルまたはアセンブリ'MyWinFormsAssembly.Services.XmlSerializers、Version = 1.0.0.0、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

実際には、Webサービスを連続して呼び出すこれらのエラーが2セット発生します。そして、プログラムは失敗し、停止し、クラッシュし、死んでしまいます。

奇妙なことに、新しいプロジェクトを開始すると、同じWebサービス参照コードを使用して同じWebサービスを呼び出すことができます。そして、新しいWinForms、WPF、WebForms、Console、およびMVCプロジェクトで、それぞれ1つずつテストして問題なく動作します。

しかし、コアdllとアセンブリを追加すると、そこに戻ります。最終的にこのエラーが発生します。コードの最初の行でこれを呼び出そうとしましたが、それでもエラーが発生します。他のすべての構成データをコメントアウトし、それを別のアセンブリにオフロードしました。これはメインプロジェクトの外部でも正常に機能し、構成データなしでコードの最初の行で再度実行しようとしましたが、すべてコメントアウトされましたが、それでも失敗します。

私がどこかで得た唯一のハーフリードであり、私はそれを本当に理解しておらず、それをチェックする方法も知らないのですが、名前の競合があるかもしれないということですか?

それ以来、Webサービスを独自のXML名前空間に配置し、名前をWindowsフォームアセンブリとは異なる名前に変更しました(誰かが同じ名前を付けていたため)。

また、Windowsフォームアセンブリの名前をまったく別の名前に変更し、ほとんどのクラスを別の「コア」アセンブリにオフロードしました。Webサービスコード自体、その構成、およびすべてが「サービス」アセンブリ(XmlSerializersが見つからないアセンブリ)にオフロードされていますが、それでも機能しません。

私はこれについてほぼ1週間頭を悩ませてきましたが、現在は製品リリースに遅れをとっています。

4

1 に答える 1

0

sgen.exeWebサービスとサービスラッパーの両方を使用してSerializers.dllを生成すると、参照されているすべてのアセンブリで修正されているように見えます。

しかし、それは私が最初に問題を抱えている理由の根本、またはあなたがそれをどのようにデバッグするのかを説明していません。または、なぜシリアライザーdllを生成する必要があるのですか?そこにはもっと良い答えがなければなりません。

于 2013-01-07T18:34:50.520 に答える