VB.NET GetObject NET 6.0 COM 问题,而 Framework 4.8 没有问题

VB.NET GetObject NET 6.0 COM Issue while there is no issue with Framework 4.8

提问人:N.TW12 提问时间:8/31/2023 更新时间:8/31/2023 访问量:113

问:

我下面有一个非常简单的代码来获取CATIA对象。当我使用 创建项目时,没有问题,我可以获取 CATIA 应用程序并开始使用它。但是,当我使用项目时,我得到NET Framework 4.8NET 6.0“Object reference not set to an instance of an object

Dim CATIA as Object
CATIA = GetObject(,"CATIA.APPLICATION")
MessageBox.Show(CATIA.ActiveDocument.Name)

有谁知道这是否可以解决,或者我会坚持下去?NET 6.0NET Framework

vb.net .net-6.0 catia

评论

0赞 Disvoys 8/31/2023
尝试使用马歇尔?将 CATIA 调暗为 INFITF。应用程序 CATIA = System.Runtime.InteropServices.Marshal.GetActiveObject(“CATIA.应用程序“)。
0赞 Jeremy Thompson 8/31/2023
我强烈建议您将 .Net Framework 代码移动到 .Net 6 Core 中。几乎所有东西都得到了满足,唉,实现略有不同,但都有很好的文档记录。将代码库与框架混合在一起并不是最佳业务实践,并且通常会导致依赖关系腐烂。此外,将其升级到核心将意味着您可以在 Linux 或 Mac 上运行它。
0赞 N.TW12 8/31/2023
@JeremyThompson,我正在远离框架,但我遇到了第一个问题 - 这个问题。
0赞 N.TW12 8/31/2023
@Disvoys,没有“GetActiveObject” - 我正在使用 NET 6.0
0赞 Disvoys 9/2/2023
尝试使自己的函数Marshall。您将在Google中轻松找到此功能。然后,您将拥有GetActiveObject。我也在使用 .net 6。如果可以提供帮助,请提供示例: chat.openai.com/share/3f361a43-31b7-4093-ad96-5728ae7df5e9

答: 暂无答案