6

我正在构建一个包含多个解决方案的解决方案。除了其中一个之外,所有这些都没有任何问题。有问题的发出以下消息:

错误 2 无法加载一种或多种请求的类型。检索 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 序列化支持实用程序 [Microsoft (R) .NET Framework,版本 4.0.30319.17929] 版权所有 (C) Microsoft Corporation。版权所有。如果您需要更多帮助,请输入“sgen /?”。SGEN:错误:无法加载一种或多种请求的类型。检索 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) \参考程序集\Microsoft\Framework.NETFramework\v4.0\System.Xml.dll"

是什么导致了这个错误,我如何在不关闭 SGEN 的情况下修复它?仅供参考,我没有编写代码。

4

3 回答 3

13

对我有用的一个很好的提示,取自这里:http ://hashtagfail.com/post/5255977780/sgen-loaderexceptions-error

发生这种情况的原因是,在 Release 版本中,Visual Studio 尝试生成包含解决方案中类型的序列化程序集,以提高 XmlSerializer 序列化性能,如果您选择序列化您的类型。这可以通过转到项目属性的构建选项卡并将“生成序列化程序集”设置为“关闭”来禁用。

于 2015-01-07T02:52:33.243 回答
1

我遇到了同样的问题,这在项目中是一个不好的参考。从 GAC 删除 DLL 后,它工作正常。您可以使用 Fusion Log 找到问题 DLL。更多信息在这里

于 2015-04-09T12:19:33.597 回答
0

解决方案很简单,但很难找到。您必须删除 asp.net 预编译文件夹。由于插件是动态引用的,.NET 不能像更新其他组件那样更新它的 dll。

于 2013-09-14T17:16:56.863 回答