MSIX 是否对进程外 COM 有某些限制?

问题描述 投票:0回答:0

我的问题是,当您处理 MSIX 打包的应用程序时,访问 COM 对象是否有某些限制。

我使用 Visual Studio 项目模板创建了一个空白的 WinUI 3 C++ 项目。在项目中,我创建了一个传统的 COM 类,它在运行时使用 CoRegisterClassObject 注册。我不会以其他方式在注册表中注册该对象。这是一个单例,应该只有在 .exe 已经启动时才可以访问。

现在,当我修改要解包的项目,并启动 .exe 时,我可以通过调用 CoCreateInstance 从另一个进程访问 singeton 类。一切都按设计工作。

但是当我将 MSIX 项目改回 packaged 设置时,从未打包的进程调用 CoCreateInstance 现在失败,代码为 REGDB_E_CLASSNOTREG.

这就像在存在未提升/提升的不匹配时尝试连接到 COM 对象。同样的错误。

那么未打包的进程是否无法访问在 MSIX 打包的应用程序中使用 CoRegisterClassObject 注册的 COM 对象?有解决方法或什么吗?提前致谢。

winapi com msix out-of-process
© www.soinside.com 2019 - 2024. All rights reserved.