症状

在安装 .NET Framework 4.8 后生成0x8001010E RPC_E_WRONG_THREAD的 STA COM 方法调用。

变通办法

方法 1:环境变量

设置以下环境变量:COMPLUS_DisableCCWSupportIAgileObject=1

此方法会影响继承此环境变量的任何环境。 这可能只是单个控制台会话,或者如果全局设置环境变量,可能会影响整个计算机。 环境变量名称不区分大小写。

方法 2:注册表

使用注册表编辑器 (regedit.exe) ,查找以下任一子项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework

HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework

对于 x64 系统上的 32 位进程,请使用:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework

然后添加以下值名称: DisableCCWSupportIAgileObject 类型:DWORD (32 位) 值 (也称为REG_WORD) 值: 1

可以使用 Windows REG.EXE工具从命令行或脚本环境添加此值。 例如:

reg add HKLM\SOFTWARE\Microsoft\.NETFramework /v DisableCCWSupportIAgileObject /t REG_DWORD /d 1

在这种情况下,使用 HKLM 而不是HKEY_LOCAL_MACHINE。 使用 reg add /? 查看有关此语法的帮助。 注册表值名称不区分大小写。

更多信息

有关此.NET Framework 4.8 运行时更改的详细信息,请参阅:https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/runtime/4.7.2-4.8#net-interop-will-now-queryinterface-for-iagileobject-a-winrt-interface

适用于

在受支持的 Windows 版本上.NET Framework 4.8 上运行的应用程序。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。