Setup Factory打包时注册com dll

Posted Siriuslzx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Setup Factory打包时注册com dll相关的知识,希望对你有一定的参考价值。

打包程序时遇到这个问题,上网搜了一下,解决这个问题需要三个步骤:

1. 按依赖关系添加dll;

2. 在setup factory里,右键需要注册的dll,属性->高级,在红框内打勾;

3. 在Setup Factory的Action页面,On Post Install中,增加以下代码:Shell.Execute("regsvr32", "open", SessionVar.Expand(" /s \\"%安装目录%\\\\XXXX.dll\\""));

不过据我试验,第3步是多余的,在2步中勾选上“register”以后,程序会自动添加注册过程的。

再说说第1步。我在打包的过程中遇到的问题是loadlibrary 126,找不到库。这里的库并不是我要注册的库,而是指的它依赖的库。查看dll的依赖项,可以使用depends与inspectExe。前者曾经是VS自带的tool,不过很早就被放弃了。后者在2014年就停止更新了,官网上说只支持到win7,我也没在win10上试过,不过目标机器就是win7,可以用。

安装好inspectExe以后,它被集成到右键菜单中。右击需要查看的dll,选择“属性”,如图所示:

在inspectExe选项卡下点“Test Load”,就可以测试能否成功注册了。弹出窗口如下所示,会列出该dll的依赖项,如果失败,就把所需要的项也打包进去。

 

以上是关于Setup Factory打包时注册com dll的主要内容,如果未能解决你的问题,请参考以下文章

Setup Factory 怎样让打包的程序在安装后自动运行

如何从 VS Setup 项目注册 COM?

程序打包(安装包制作,Inno setup打包教程,QT程序打包)

程序打包(安装包制作,Inno setup打包教程,QT程序打包)

程序打包(安装包制作,Inno setup打包教程,QT程序打包)

使用 Setup 将Python 代码 打包