COM 异常:访问引用的 dll 函数时 mscorlib 中出现 0x800702E4

COM Exception: 0x800702E4 in mscorlib while accessing referenced dll function

我突然在从引用的 DLL 程序集中调用任何函数时遇到问题。 如果我 运行 我的程序集没有管理员权限,我将收到 COM 异常。此 COM 异常仅在我的开发机器上引发,在具有相同用户权限(Active Directory 域和本地权限)的任何其他机器上我没有收到此 COM 异常。

调用的函数不需要任何提升的权限。有谁知道哪里出了问题?

翻译异常:

mscorlib.dll 中发生类型 'System.Runtime.InteropServices' 的未处理异常。

其他信息:为 CLSID 为 {ACE5AE23-982C-4033-BD09-DE533993C9A5} 的组件检索 COM class 工厂失败,原因如下: 800702e4 请求的操作需要提升。 (HRESULT 异常:0x800702E4)。

原始例外(德语): Ein Ausnahmefehler des Typs "System.Runtime.InteropServices.COMException" ist in mscorlib.dll aufgetreten.

Zusätzliche Informationen: Die COM-Klassenfactory für die Komponente mit CLSID {ACE5AE23-982C-4033-BD09-DE533993C9A5} konnte aufg运行d des folgenden Fehlers nicht abgerufen werden: 800702e4 Der angeforderhertte Re Vorgang . (Ausnahme von HRESULT: 0x800702E4).

解决方案:

出于某种原因,dll 在 Windows 注册表中被标记为 "RunAsAdministrator":

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 分别 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\Layers

移除这个 Flag 后,一切都恢复正常。