UG NXOpen 二次开发之操作系统差异
2025年4月20日大约 1 分钟
最近写了一点 UG NX 的二次开发。二次开发这事儿的特点是“磨”,一个一个坑往往是长久的走投无路之后才柳暗花明。
今天碰上的问题是,之前在 Win 10 下调好了的代码,拿到 Win 11 下无法运行;报错信息大概是:
onecore\net\netprofiles\service\src\nsp\dll\namespaceserviceprovider
此服务不存在,在指定的命名空间中找不这个服务
这是调试控制台抓出来的信息。正常运行的话,最多只有一个自己编的意外弹窗,写的是更为模糊的信息。搜了一番,原因大概是:
When running on windows 11. The GetHostByName is deprecated. Only GetHostName is supported as far as I can tell.
https://github.com/Nethereum/Nethereum/issues/973
于是找了 Win 10 机器测试,发现原生在 Win 10 上面编译出来的可执行文件在 Win 10 上运行是正常的, 但只要编译环境或者运行环境二者之一是 Win 11,都会出这个问题。
细节就不用继续追究了,无论微软还是西门子都不是自己能撼动的。幸好甲方大爷们倒是不要求 Win 11 运行。
用的是 NX 12 的某个版本,考虑到这玩意儿是 2017 发布的,不兼容 Win 11 倒是情有可原。也许更新的版本会支持?