gpt4 book ai didi

.net - 在 C++/CLI 中动态加载 EXE 程序集时发生异常(无法加载文件或程序集',版本 = 1.0.3836.39802 ...)

转载 作者:行者123 更新时间:2023-12-02 17:54:54 24 4
gpt4 key购买 nike

我在动态加载程序集时遇到 C++/CLI 异常,该程序集本身使用 Assembly.Load 在 C++/CLI 托管模式下创建 EXE。它成功加载 DLL 程序集,但无法加载 EXE 程序集并生成以下异常:

An unhandled exception of type 'System.IO.FileLoadException' occurred in TestManager.dll

Could not load file or assembly 'testAssembly, Version=1.0.3836.39802, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Attempt to load an unverifiable executable with fixups` (IAT with more than 2 sections or a TLS section.)

Exception from HRESULT: 0x80131019

TestManager.dll 本身是一个托管 dll,并在 CLI 中加载到另一个 CLR 进程中,并尝试将 EXE 程序集作为单独的进程加载,但失败并生成异常。

这可能是由于使用混合模式造成的。

最佳答案

“当作为引用的程序集加载时,混合模式 C++ EXE 无法在内存中正确重定位。这就是运行时失败的原因。”

引用自Microsoft's response to this bug在 Connect 上,他们解释说他们不会修复它(对于罕见的情况来说太麻烦了)。

关于.net - 在 C++/CLI 中动态加载 EXE 程序集时发生异常(无法加载文件或程序集',版本 = 1.0.3836.39802 ...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3172572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com