Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net sgen.exe生成错误";无法加载一个或多个请求的类型“;_.net_Visual Studio 2012_Sgen - Fatal编程技术网

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

.net sgen.exe生成错误";无法加载一个或多个请求的类型“;,.net,visual-studio-2012,sgen,.net,Visual Studio 2012,Sgen,我正在构建一个包含多个解决方案的解决方案。除了一个以外,其他所有的都没有任何问题。有问题的一个会发出以下信息: 错误2无法加载一个或多个请求的类型。检索 有关详细信息,请参阅LoaderExceptions属性 信息。J:\MyPlugins\MyPlugin1\SGEN MyPlugin1 我在VisualStudio中打开了详细输出,得到了 以下内容:C:\ProgramFiles(x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0工具\sgen.

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

错误2无法加载一个或多个请求的类型。检索 有关详细信息,请参阅LoaderExceptions属性 信息。J:\MyPlugins\MyPlugin1\SGEN MyPlugin1

我在VisualStudio中打开了详细输出,得到了 以下内容:C:\ProgramFiles(x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0工具\sgen.exe/程序集:

我用FusionLog检查了输出,并正确加载了所有内容。结果证明这是一个骗局。我决定再次运行构建,并显示详细信息。我得到以下信息:

Microsoft(R)Xml序列化支持实用程序[Microsoft(R).NET 框架,版本4.0.30319.17929]版权所有(C)Microsoft 公司版权所有。如果你想得到更多的帮助, 请键入“sgen/?”。SGEN:错误:无法加载一个或多个 请求的类型。有关详细信息,请检索LoaderExceptions属性 信息。命令已退出,代码为1。完成执行任务 “SGen”——失败了

C:\ProgramFiles(x86)\Microsoft SDK\Windows\v8.0A\bin\NETFX 4.0 Tools\sgen.exe/assembly::\MyPlugins\MyPlugin1.dll”/proxytypes /参考:“J:\MyPlugins\MyPlugin1\packages\FluentValidation.3.4.6.0\lib\Net40\FluentValidation.dll” /参考:“C:\ProgramFiles(x86)\reference 程序集\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:\ProgramFiles(x86)\reference 程序集\Microsoft\Framework.NETFramework\v4.0\System.Core.dll“ /参考:“C:\ProgramFiles(x86)\reference 程序集\Microsoft\Framework.NETFramework\v4.0\System.Data.dll“ /参考:“C:\ProgramFiles(x86)\reference 程序集\Microsoft\Framework.NETFramework\v4.0\System.dll“ /参考:“C:\ProgramFiles(x86)\reference 程序集\Microsoft\Framework.NETFramework\v4.0\System.EnterpriseServices.dll“ /参考:“C:\ProgramFiles(x86)\reference 程序集\Microsoft\Framework.NETFramework\v4.0\System.Web.dll“ /参考:“C:\ProgramFiles(x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Web.Mvc.dll”/reference:“C:\Program Files (x86)\Reference 程序集\Microsoft\Framework.NETFramework\v4.0\System.Web.Services.dll“ /参考:“C:\ProgramFiles(x86)\reference 程序集\Microsoft\Framework.NETFramework\v4.0\System.Xml.dll“


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

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

这是一个对我有用的好技巧,摘自:

之所以会发生这种情况,是因为在发布版本中,VisualStudio 尝试生成包含中类型的序列化程序集 您的解决方案,为了提高XmlSerializer序列化性能, 如果您选择序列化您的类型这可以通过以下方式禁用: 转到项目属性的“生成”选项卡并设置“生成” 从“序列化程序集”到“关闭”。


我也有同样的问题,这在项目中是一个糟糕的参考。从GAC中删除DLL后,它工作正常。您可以通过Fusion Log找到问题DLL。更多信息

你找到过这个问题的答案吗?我也有同样的问题,看看我的答案。谢谢你提醒我。