连接到 C# 应用程序在 python-3.7 中失败,但在 python-2.7 中有效

问题描述

我正在尝试将旧的 Python 脚本从 Python-2.7 更新到 python-3.7(或更新版本)。该脚本使用 IronPython-2.7 连接到 C# dll,以便与 Windows 应用程序进行 SDK 交互。新代码实现了 pythonnet 库来接管 C# 交互。

脚本的“旧”状态有效并经过现场测试和验证。

python-3.7 样式的更新脚本在 C# 连接到应用程序时失败。

我试图通过首先在 Python-2.7 命令提示符下运行特定的失败代码来调试它。

从返回值“True”可以看出,在 2.7 环境中一切正常。

>>> import clr
>>> import System
>>> sdk = System.Activator.CreateInstance(type=System.Type.GetTypeFromProgID('AppSDK.Application'))
>>> print(sdk)
<System.__ComObject() object at 0x000000000000006C>
>>> sdk.Connect('localhost')
True
>>>

他们在 python-3.7 终端中测试了相同的代码。连接到应用程序时,此代码连接失败。

>>> import clr
>>> import System
>>> sdk = System.Activator.CreateInstance(type=System.Type.GetTypeFromProgID('AppSDK.Application'))
>>> print(sdk)
System.__ComObject
>>> sdk.Connect('localhost')
Traceback (most recent call last):
  File "<stdin>",line 1,in <module>
AttributeError: '__ComObject' object has no attribute 'Connect'

这是一个具有 python-3.7 相关问题的特定 pythonnet 吗? 还是我错误调用了与应用程序的连接?

BR, LVX

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)