注意
本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。
如果用户程序集的托管 DllMain 函数(因 DLL_PROCESS_ATTACH 原因而调用)返回 FALSE,则将激活 dllMainReturnsFalse 托管调试助手 (MDA)。
症状
DllMain 函数返回 FALSE,表示其未正确执行。 这会导致一些未确定的问题,因为 DllMain 函数通常包含重要的初始化代码。
原因
因 DLL_PROCESS_ATTACH 原因调用 DllMain 函数,在上传时初始化 DLL。 如果它返回 FALSE,则意味着该 DLL 初始化失败。
解决方法
分析失败的 DLL 的 DllMain 函数的代码,找出初始化失败的原因。
对运行时的影响
此 MDA 对 CLR 无任何影响。 它只报告有关 DllMain 的返回值的数据。
输出
一条指示 DllMain 函数(因 DLL_PROCESS_ATTACH 原因调用)返回 FALSE 的消息。 请注意,此 MDA 仅在托管代码中实现 DllMain 时才激活。
Configuration
<mdaConfig>
<assistants>
<dllMainReturnsFalse />
</assistants>
</mdaConfig>