【问题标题】:sgen.exe build error "Unable to load one or more of the requested types"sgen.exe 构建错误“无法加载一种或多种请求的类型”
【发布时间】:2012-12-31 14:03:22
【问题描述】:

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

错误 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 框架,版本 4.0.30319.17929] 版权所有 (C) Microsoft 公司。版权所有。如果您需要更多帮助, 请输入“sgen /?”。 SGEN:错误:无法加载一个或多个 请求的类型。检索 LoaderExceptions 属性以获取更多信息 信息。该命令以代码 1 退出。完成执行任务 “SGen”——失败。

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 工具\sgen.exe /assembly:":\MyPlugins\MyPlugin1.dll" /proxytypes /参考:“J:\MyPlugins\MyPlugin1\packages\FluentValidation.3.4.6.0\lib\Net40\FluentValidation.dll” /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.0\mscorlib.dll" /参考:“J:\MyPlugins\MyPlugin1\Libraries\Core\bin\Release\Core.dll” /参考:“J:\MyPlugins\MyPlugin1\Libraries\Services\bin\Release\Services.dll” /参考:“J:\MyPlugins\MyPlugin1\Presentation\Web.Framework\bin\Release\Web.Framework.dll” /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.0\System.Core.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.0\System.Data.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.0\System.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.0\System.EnterpriseServices.dll" /参考:“C:\程序文件(x86)\参考 程序集\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)\参考 程序集\Microsoft\Framework.NETFramework\v4.0\System.Web.Services.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.0\System.Xml.dll"

导致此错误的原因是什么?在不关闭 SGEN 的情况下如何解决?仅供参考,代码不是我写的。

【问题讨论】:

  • 你找到答案了吗?我也遇到了同样的问题
  • 看我的回答。谢谢你提醒我。

标签: .net visual-studio-2012 sgen


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多