web-dev-qa-db-ja.com

ファイルまたはアセンブリ 'MyAssembly.XmlSerializersを読み込めませんでした

私はIISのメモリダンプを取り、分析中に次のようなエラーが見つかりました 'ファイルまたはアセンブリをロードできませんでしたMyAssemblyName.XmlSerializers'。私のコードでは、XmlSerializerクラスを使用して、XMLファイルからカスタムオブジェクトにXMLコンテンツをシリアル化および逆シリアル化しています。プロジェクトがビルドされると、MyAssembly.dllおよびMyAssembly.pdbファイルのみが作成され、MyAssembly.XmlSerializers.dllは作成されません。誰かが私のプロジェクトでxmlserializers.dllファイルを作成できるようにする方法を知っていますか?

注:プロジェクトのビルドタブで、「シリアライズアセンブリの生成」が「自動」に設定されています

ありがとう。

29
sanjeev40084

すでに答えがあります ここ 。どうやらこれは、MSが修正する予定のない「予想される動作」です。

最初のコメントには回避策があります:

この問題を解決する方法の1つは、[ツール]-> [オプション]-> [デバッグ]-> [一般オプション]の[コードのみ]オプションをチェックすることです。

37
Bok McDonagh

Sgen.exeを使用してこのアセンブリを生成することもできます

私にとってそれは次の場所にあります:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools

1. open cmd command
2. cd yourProjectPath
3. sgen Project.dll

次のコマンドは、Project.dllという名前のアセンブリに含まれるすべての型をシリアル化するために、Project.XmlSerializers.dllという名前のアセンブリを作成します。

2
LIDEN

MyAssembly.XmlSerializers.dllを作成するときは、プロジェクトと同じ.NETバージョンであることを確認してください。 dotPeekまたはILSpyとしてソフトウェアを使用してそれを確認できます。 Visual Studioから.NET 3.5ソリューションのxmlserializersを作成するときに同様の問題があり、シリアル化アセンブリの生成がプロジェクトに設定されていましたが、Sgen.exeがC:\ Program Files(x86)\ Microsoft SDKs\Windows\v10.0A \から使用されましたbin\NETFX 4.6.1ツール。C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.0A\Binから取得する必要があります。ソリューションが.NET 3.5にある場合、MyAssembly.XmlSerializers.dllも.NET 3.5にある必要があります。

0
Sashus