首页 文章

sgen.exe生成错误“无法加载一个或多个请求的类型”

提问于
浏览
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 /汇编:

我用FusionLog检查输出,一切都正确加载 . 结果证明这是一个红鲱鱼 . 我决定再次运行构建,并显示详细程度 . 我得到以下内容:

Microsoft(R)Xml序列化支持实用程序[Microsoft(R).NET Framework,版本4.0.30319.17929]版权所有(C)Microsoft Corporation . 版权所有 . 如果您需要更多帮助,请输入“sgen /?” . SGEN:错误:无法加载一个或多个请求的类型 . 检索LoaderExceptions属性以获取更多信息 . 该命令退出代码1.完成执行任务“SGen” - FAILED . 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“/ reference:”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.NETFramewor k \ 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?仅供我,我没有写代码 .

3 回答

  • 1

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

  • 12

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

  • 0

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

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

相关问题