现在的位置: 首页 > 综合 > 正文

解决添加Com引用 生成的Interop.*.dll 版本号永远是1.0的问题

2013年05月30日 ⁄ 综合 ⁄ 共 916字 ⁄ 字号 评论关闭

在项目里面,添加对COM的引用时,自动生成了Interop.*.dll,但是这个dll的版本号永远是1.0. 如果使用InstallShield 制作安装包,进行修改安装时,这个dll不会被更新,就因为版本号永远是1.0

想修改这个版本号,没找到便捷的办法,就用 TlbImp.exe 重新导出一个dll,这个工具可以带上版本号的。

TlbImp.exe ( 类型库导入程序)参考资料 http://msdn.microsoft.com/zh-cn/site/tt0cf3sx

  1. 把原有的项目编译成功, 确保能够正常运行,Release 目录会有一个Interop.*.dll的文件,此文件版本号是1.0
  2. 先找到这个文件,我的机器这个文件在 C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\
  3. 拷贝到特定的目录,或者不拷贝也行,写bat的时候用全路径
  4. Bat 执行,代码如下:
"tlbimp.exe" ../player/release/MyCom.tlb /out:release/Interop.WebCameraATLFrameLib.dll /asmversion:2.1.1101.15007 /namespace:WebCameraATLFrameLib

 

说明:

"tlbimp.exe" 如果不是在这个目录,写全路径吧

../player/release/MyCom.tlb Com 生成的TLB文件,一般在release 目录

/out: release/Interop.MyCom.dll 输出文件的路径

/asmversion:2.1.1101.15007 输出文件的版本号

/namespace: MyCom : 在项目里面的命名空间,必须和项目里面的命名空间一致,务必确认大小写。

请确保以上的相对路径正常。

到Release 目录检查 dll, 版本号有了,而且可以正常运行。

 

也可以把bat命令放到 VS的 后续执行操作里面,这是后话了。

可以参考这位兄弟的办法:http://www.cnblogs.com/linlf03/archive/2011/11/18/2253760.html

 

如果哪位找到更简单的办法,请告知,谢谢     !

抱歉!评论已关闭.