UG 二次开发 dll 签名
2013-06-12 20:30
549 查看
背景:这几天开始搞UG 的C#二次开发,由于公司的限制,开发过程是在自己电脑上的D版软件基础上进行,目标机是公司上的正版软件上运行。
问题:做完的dll可以在本机运行,但是一到公司就不行,提示错误大致为“加载库出错”。
过程:研究半天,排除了Net库版本的问题,最终发现在UG5.0开始,所有开发的DLL都要“签名”后才能被客户端上正版的UG调用。这一点在网上的教程中,提及的很少。(破碎的知识网络坑死人啊)。
解决方案:1. 如果是基于c++开发的dll,使用如下方法可以顺利签名成功(这里借用网上现有的文字和图片)
1-1)在文件里引用如下文件,然后静态编译自己的dll(MT或MTD)
1-2)启动NX Tools的DOS命令行,进入NX5安装目录的UGOPEN下,运行nxsign xxx.dll,其中的xxx.dll应该包含全路径,如下图。这里的nxsign.exe是为c++的dll签名的软件。如果签名成功,提示信息也如下。
2. 如果是基于c#开发的dll,使用如下方法签名(这有个深渊巨坑,翻遍网络,才在老外那找到一点解决的线索)
2-1) 向项目中添加资源文件,在“添加现有文件”的对话框里,找到UG安装目录下NXOPEN文件夹内的NXSigningResource.res文件,将它添加到项目中。
2-2)启动NX Tools的DOS命令行,进入NX安装目录的UGII下,运行SignLibrary.exe xxx.dll,其中的xxx.dll应该包含全路径,如下图。这里的SignLibrary.exe是为c#的dll签名的软件。如果签名成功,提示信息也如下。
2-3)这里坑来了,如果是使用的UG5.0里面的SignLibrary.exe,那么是无论如何都是提示签名不成功,错误提示大致意思为:读取内存错误,下面包含3个函数,只记得其中一个是 SignLibrary.Main(String[] args)(因为没法复现,所以没截图了)
因为UG5.0里面的SignLibrary.exe就是坏的!因此需要使用UG6.0版本(或以上,没试过)里面的SignLibrary.exe,才能完成签名。
而这个在国内的论坛里居然没人写过这个问题,如果邪恶点想,也许是我兲朝民间在搞二次开发的终端客户都是D版,不存在这类问题,呵呵。总之,把这些记录下来,希望可以让其他如我这般自学的人少走弯路,阿弥陀佛。
问题:做完的dll可以在本机运行,但是一到公司就不行,提示错误大致为“加载库出错”。
过程:研究半天,排除了Net库版本的问题,最终发现在UG5.0开始,所有开发的DLL都要“签名”后才能被客户端上正版的UG调用。这一点在网上的教程中,提及的很少。(破碎的知识网络坑死人啊)。
解决方案:1. 如果是基于c++开发的dll,使用如下方法可以顺利签名成功(这里借用网上现有的文字和图片)
1-1)在文件里引用如下文件,然后静态编译自己的dll(MT或MTD)
1-2)启动NX Tools的DOS命令行,进入NX5安装目录的UGOPEN下,运行nxsign xxx.dll,其中的xxx.dll应该包含全路径,如下图。这里的nxsign.exe是为c++的dll签名的软件。如果签名成功,提示信息也如下。
2. 如果是基于c#开发的dll,使用如下方法签名(这有个深渊巨坑,翻遍网络,才在老外那找到一点解决的线索)
2-1) 向项目中添加资源文件,在“添加现有文件”的对话框里,找到UG安装目录下NXOPEN文件夹内的NXSigningResource.res文件,将它添加到项目中。
2-2)启动NX Tools的DOS命令行,进入NX安装目录的UGII下,运行SignLibrary.exe xxx.dll,其中的xxx.dll应该包含全路径,如下图。这里的SignLibrary.exe是为c#的dll签名的软件。如果签名成功,提示信息也如下。
2-3)这里坑来了,如果是使用的UG5.0里面的SignLibrary.exe,那么是无论如何都是提示签名不成功,错误提示大致意思为:读取内存错误,下面包含3个函数,只记得其中一个是 SignLibrary.Main(String[] args)(因为没法复现,所以没截图了)
因为UG5.0里面的SignLibrary.exe就是坏的!因此需要使用UG6.0版本(或以上,没试过)里面的SignLibrary.exe,才能完成签名。
而这个在国内的论坛里居然没人写过这个问题,如果邪恶点想,也许是我兲朝民间在搞二次开发的终端客户都是D版,不存在这类问题,呵呵。总之,把这些记录下来,希望可以让其他如我这般自学的人少走弯路,阿弥陀佛。
相关文章推荐
- 谈谈UG二次开发信息保存的问题/ How to Save Information in NX Development
- UG二次开发:UF_load_library的用法范例
- 一篇关于UG二次开发的论文
- Pro Engineer Pro/Toolkit dll工程二次开发设置(Pro Engineer 3.0+Visual Studio 2005(C++))
- 微信小程序支付开发笔记2--生成签名-统一下单-二次签名
- UG二次开发:内部模式时如何调用控制台显示?
- UG NX 二次开发 转档图片
- 请各位大侠帮帮小弟的忙,谁有windows(MAS)dll二次开发例子
- 谈谈UG二次开发程序入口
- 谈谈UG二次开发的Open和NXOpen
- MapGis 二次开发 注册DLL失败问题
- UG/NX 二次开发
- UG二次开发之ug/open++类库
- 谈谈UG二次开发信息保存的问题/ How to Save Information in NX Development
- 用Java做UG NX 二次开发
- UG OPEN API二次开发之UIStyler开发实例
- 谈谈UG二次开发的Open和NXOpen
- 【二次开发】串口DLL
- UG二次开发团队建立起来了!发个纪念帖!
- ZenBrush(禅宗画笔)反编译后二次开发(电子签名_毛笔带笔锋的效果)