C# 解析程序集时出现异常:尝试加载带有修复程序的无法验证的可执行文件

C# 解析程序集时出现异常:尝试加载带有修复程序的无法验证的可执行文件,c#,assembly-resolution,C#,Assembly Resolution,我正在将所需的程序集嵌入到我的项目中,并在运行时使用AppDomain.CurrentDomain.AssemblyResolveevent解析它们 除了的.net4包装器外,其他都可以正常工作,如果我尝试的话,它会抛出一个异常 System.IO.FileLoadException: Attempt to load an unverifiable executable with fixups (IAT with more than 2 sections or a TLS section.) (

我正在将所需的程序集嵌入到我的项目中,并在运行时使用
AppDomain.CurrentDomain.AssemblyResolve
event解析它们

除了的.net4包装器外,其他都可以正常工作,如果我尝试的话,它会抛出一个异常

System.IO.FileLoadException: Attempt to load an unverifiable executable with fixups (IAT with more than 2 sections or a TLS section.) (Exception from HRESULT: 0x80131019)
   at System.Reflection.RuntimeAssembly.nLoadImage(Byte[] rawAssembly, Byte[] rawSymbolStore, Evidence evidence, StackCrawlMark& stackMark, Boolean fIntrospection, SecurityContextSource securityContextSource)
   at System.Reflection.Assembly.Load(Byte[] rawAssembly)
   at xyz.Utility.Helpers.AssemblyManager.Resolver(Object sender, ResolveEventArgs args) in C:\Users\shalafi\Desktop\xyz\trunk\xyz\Utility\Helpers\AssemblyManager.cs:line 55
   at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
基本上我怀疑CLR带有Assembly.Load(字节[]),尽管我不确定

我无法找到与异常消息相关的任何内容

尝试加载带有修复程序的无法验证的可执行文件(IAT包含2个以上的节或TLS节。)


感谢您的帮助。

编辑:由于外部链接过时,我发布的参考资料不再有效。请参阅这里。

为了防止其他人遇到我的版本的问题,下面是我如何解决的:

  • 使用其他名称创建新项目
  • 将所有文件复制到新项目中(包括代码)
  • 添加对无错误编译所需的所有文件的引用

我一定是把我的参考资料弄乱了。当我试图从程序中加载任何外部.dll时,我就得到了这个错误。

看来,这是没有任何解决办法的:解决方案是将C++程序集从EXE更改为DLL!在EXE加载期间,可能存在CLR加载程序不支持的某些链接器优化。看:C++汇编我已经使用了DLL…相关:我有同样的问题,我只是把项目改到同一个平台,它工作。我发现你可以看到它的一部分相关问题微软Connect停止,请修复链接@Soundararajan@NoahHeber该链接不可用,Microsoft Collaborate网站也未设置该链接。在查看了porges发布的帖子后,发现了关于错误的有价值的信息。