6

複数のソリューションを含むソリューションを構築しています。それらの 1 つを除くすべてが問題なくビルドされます。問題のあるものは、次のメッセージを出力します。

エラー 2 要求されたタイプの 1 つ以上を読み込めません。詳細については、LoaderExceptions プロパティを取得してください。J:\MyPlugins\MyPlugin1\SGEN MyPlugin1

Visual Studio で詳細出力をオンにすると、次のようになりました: C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sgen.exe /assembly:

FusionLog で出力を確認したところ、すべてが正しく読み込まれました。これは赤ニシンであることが判明しました。冗長性を上げてビルドを再度実行することにしました。私は以下を得ました:

Microsoft (R) Xml Serialization サポート ユーティリティ [Microsoft (R) .NET Framework、バージョン 4.0.30319.17929] Copyright (C) Microsoft Corporation. 全著作権所有。さらにヘルプが必要な場合は、「sgen /?」と入力してください。SGEN : エラー : 要求された型の 1 つ以上を読み込めません。詳細については、LoaderExceptions プロパティを取得してください。コマンドはコード 1 で終了しました。タスク「SGen」の実行が完了しました -- 失敗しました。

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sgen.exe /assembly:":\MyPlugins\MyPlugin1.dll" /proxytypes /reference:"J:\MyPlugins\ MyPlugin1\packages\FluentValidation.3.4.6.0\lib\Net40\FluentValidation.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\mscorlib.dll" /reference :"J:\MyPlugins\MyPlugin1\Libraries\Core\bin\Release\Core.dll" /reference:"J:\MyPlugins\MyPlugin1\Libraries\Services\bin\Release\Services.dll" /reference:"J: \MyPlugins\MyPlugin1\Presentation\Web.Framework\bin\Release\Web.Framework.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Core .dll" /参照:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4. 0\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.EnterpriseServices.dll" /reference:"C:\Program Files (x86) \Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Web.dll" /reference:"C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Web. Mvc.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Web.Services.dll" /reference:"C:\Program Files (x86) \Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Xml.dll"

このエラーの原因は何ですか?また、SGEN をオフにする以外に修正するにはどうすればよいですか? 参考までに、私はコードを書きませんでした。

4

3 に答える 3

13

ここから取った、私のために働いた素晴らしいヒント: http://hashtagfail.com/post/5255977780/sgen-loaderexceptions-error

これが発生する理由は、型をシリアル化することを選択した場合、リリース ビルドでは、Visual Studio がソリューション内の型を含むシリアル化アセンブリを生成して、XmlSerializer シリアル化のパフォーマンスを向上させようとするためです。これを無効にするには、プロジェクト プロパティの [ビルド] タブに移動し、[シリアル化アセンブリの生成] を [オフ] に設定します。

于 2015-01-07T02:52:33.243 に答える
0

解決策は簡単ですが、見つけるのは困難です。asp.net プリコンパイル済みフォルダーを削除する必要があります。プラグインは動的に参照されるため、.NET は他のコンポーネントのように dll を更新できません。

于 2013-09-14T17:16:56.863 に答える